Как посмотреть содержимое Check Constraint - PullRequest
10 голосов
/ 07 июля 2010

Есть ли скрипт TSQL, который позволит мне увидеть содержимое ограничения.Я нашел вопрос относительно Oracle, но мне нужен сценарий TSQL.

Как просмотреть содержимое Check Constraint в Oracle

Однако мне известно о sys.check_constraints,«определение» возвращается нулевым для всех объектов.

Select * from sys.check_constraints

Ответы [ 4 ]

19 голосов
/ 07 июля 2010

Другой способ

для проверки ограничений

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'
3 голосов
/ 07 июля 2010
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
2 голосов
/ 12 августа 2016

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%'

1 голос
/ 07 июля 2010

Чтобы иметь какие-либо проверочные ограничения, вам понадобятся объекты этого типа.

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

check_constraints

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...