Запрос, чтобы найти все ограничения FK и их правила удаления (SQL Server) - PullRequest
14 голосов
/ 07 октября 2010

В SQL Server 2005 можно ли выполнить запрос SQL, чтобы отобразить все ограничения FK для таблиц в БД и показать правило удаления? (т.е. ничего, каскад, установка нуля или установка по умолчанию)

Вывод, который я ищу, похож на:

FK_NAME                  ON_DELETE
==================================
FK_LINEITEM_STATEMENT    CASCADE
FK_ACCOUNTREP_CLIENT     NOTHING

Ответы [ 3 ]

30 голосов
/ 07 октября 2010

Вы можете попробовать это:

SELECT name, delete_referential_action_desc
FROM sys.foreign_keys
7 голосов
/ 31 марта 2011

Немного опоздал к игре, но вы также можете попробовать это:

select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
0 голосов
/ 21 апреля 2016

Вы также можете использовать выражение в блоке WHERE:

objectproperty(object_id('FK_your_constraint_name'), 'CnstIsDeleteCascade')

или

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