查询以查找所有FK约束及其删除规则(SQL Server)

时间:2010-10-06 23:00:35

标签: sql sql-server sql-server-2005 tsql constraints

在SQL Server 2005中,我是否可以发出SQL查询以列出数据库中表的所有FK约束,并显示删除规则? (即没有,级联,设置为null或设置默认值)

我正在寻找的输出类似于:

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

3 个答案:

答案 0 :(得分:29)

你可以试试这个:

SELECT name, delete_referential_action_desc
FROM sys.foreign_keys

答案 1 :(得分:7)

这里游戏的时间已经很晚了,但你也可以试试这个:

select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS

答案 2 :(得分:0)

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

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

objectproperty(your_constraint_object_id, 'CnstIsDeleteCascade')