如何检索SQL Server检查约束依赖列

时间:2013-09-26 15:01:00

标签: sql-server sql-server-2008 tsql sql-server-2008-r2 sql-server-2012

如果我创建下表

create table test(
        id1 int,
        id2 int,
        id3 int constraint CK1 check (id3 > 2),
        constraint CK2 check (id1 > id2),
)

我可以通过查询select * from sys.check_constraints找到CK1的依赖关系。 parent_column_id将返回正确答案3.然而,CK2是一个不同的故事,父列id返回0.是否有另一个视图可以告诉我CK2的依赖列?

由于

2 个答案:

答案 0 :(得分:1)

您可以使用 INFORMATION_SCHEMA 架构。

select cu.*
from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cu
inner join INFORMATION_SCHEMA.CHECK_CONSTRAINTS c on c.CONSTRAINT_NAME=cu.CONSTRAINT_NAME
where c.CONSTRAINT_NAME='CK2'

答案 1 :(得分:0)

我更喜欢使用基本视图

select * 
from sys.check_constraints cc
join sys.objects o
  on o.object_id=cc.parent_object_id