0
点赞
收藏
分享

微信扫一扫

SQL 根据指定的列找出约束名

为了避免录入错误的数据,我们往往会给“列”加上各种约束条件。

运行以下代码能够实现“反向”的功能:给出表名和列名,就能找出约束名。

以下例句是找出给列“Class”设置的“默认值约束”的约束名。

表名'dbo.TStudent'和列名'Class'作为参数填入语句。

declare @name nvarchar(80)
--显式连接
select @name= b.name from syscolumns a,sysobjects b where a.id=object_id('dbo.TStudent' ) and b.id=a.cdefault and a. name='Class' and b.name like 'DF%';
select @name
--隐式连接(不建议使用,仅作记录)
select b.name from syscolumns a join sysobjects b on a.id=object_id('dbo.TStudent') and b.id= a.cdefault and a. name='Class'and b .name like 'DF%';

这个功能有什么用处呢?

给列添加约束的前提条件是列之前没有添加过约束。否则需要先删除之前的约束,再添加新的约束。

于是又带来一个新问题:之前的约束名是什么?

当然可以在数据库管理器的图形界面里查看,但本文给出了用代码实现的思路,这就可以实现删除的自动化:







举报

相关推荐

0 条评论