查找所有外键约束及其删除规则的查询(SQL Server)

23
在 SQL Server 2005 中,我可以发出一个SQL查询来列出数据库内所有表的外键约束,并显示删除规则吗?(即无操作、级联、设为Null或设为默认值)
我需要的输出类似于:
FK_NAME                  ON_DELETE
==================================
FK_LINEITEM_STATEMENT    CASCADE
FK_ACCOUNTREP_CLIENT     NOTHING
3个回答

45

你可以尝试这个:

SELECT name, delete_referential_action_desc
FROM sys.foreign_keys

1
谢谢。在你提供这个小技巧之前,我一直按照微软的方式双击操作,导致手部过度使用综合症。 - Synesso

10

虽然有点晚了,但您也可以尝试这个:

select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS

1

您也可以在WHERE块中使用表达式:

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

或者

objectproperty(your_constraint_object_id, 'CnstIsDeleteCascade')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接