如何查看Check Constraint的内容

时间:2010-07-07 13:23:44

标签: sql sql-server tsql

是否有TSQL脚本允许我查看约束的内容。我发现了一个关于Oracle的问题,但我需要一个TSQL脚本。

How to see contents of Check Constraint on Oracle

我知道sys.check_constraints,但是,'definition'对所有对象都返回null。

Select * from sys.check_constraints

4 个答案:

答案 0 :(得分:18)

另一种方式

用于检查约束

select definition,name
 from sys.check_constraints

表示默认约束

select definition,name
 from sys.default_constraints

还有另一种方式

 SELECT object_definition(OBJECT_ID(CONSTRAINT_NAME)),* 
 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
 where CONSTRAINT_TYPE <> 'PRIMARY KEY'

答案 1 :(得分:3)

SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS

答案 2 :(得分:2)

  

sys.default_constraints用于列的默认约束

     

sys.check_constraints用于列的检查约束

     

关键约束的sys.key_constraints(例如主键)

     

外键关系的sys.foreign_keys

sys.check_constraints 用于列的检查约束,对表的检查约束无效。例如:CONSTRAINT CK_NumeroUsadas_NumeroTotal CHECK (NumeroUsadas <= NumeroTotal AND NumeroTotal >= 0),

在约束内搜索文字:

1。)SELECT CONSTRAINT_NAME,CHECK_CLAUSE FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS WHERE CHECK_CLAUSE like '%NumeroTotal%' or CHECK_CLAUSE LIKE '%NumeroUsadas%'

2。)SELECT object_definition(OBJECT_ID(CONSTRAINT_NAME)),* FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'CHECK' AND object_definition(OBJECT_ID(CONSTRAINT_NAME)) like '%NumeroTotal%' or object_definition(OBJECT_ID(CONSTRAINT_NAME)) LIKE '%NumeroUsadas%'

答案 3 :(得分:1)

要获得任何检查约束,您将需要此类型的对象。

select *
from sys.objects
where sys.objects.type = 'C'

check_constraints