Запрос, чтобы найти все ограничения FK и их правила удаления (SQL Server)

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

Результат, который я ищу, похож на:

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

Ответ 1

Вы можете попробовать следующее:

SELECT name, delete_referential_action_desc
FROM sys.foreign_keys

Ответ 2

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

select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS

Ответ 3

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

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

или

objectproperty(your_constraint_object_id, 'CnstIsDeleteCascade')