2010-10-06 71 views
10

在SQL Server 2005中,我可以发出SQL查询来列出数据库中表上的所有FK约束,并显示删除规则吗? (即什么都没有,级联,设置为空或默认设置)查询以查找所有FK约束及其删除规则(SQL Server)

我在寻找的输出是一个类似于:

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

回答

22

你可以试试这个:

SELECT name, delete_referential_action_desc 
FROM sys.foreign_keys 
+1

谢谢。我以MS方式做事情,并在你提供这个小块之前双击我的RSI方式。 – Synesso 2010-10-06 23:14:42

4

小晚到这里的游戏,但你也可以试试这个:

select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 
0

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

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

objectproperty(your_constraint_object_id, 'CnstIsDeleteCascade')