Query to find all FK constraints and their delete rules (SQL Server)
Asked Answered
P

3

24

In SQL Server 2005, can I issue an SQL query to list all FK constraints on tables within the DB, and show the delete rule? (ie nothing, cascade, set null, or set default)

The output I'm looking for is something akin to:

FK_NAME                  ON_DELETE
==================================
FK_LINEITEM_STATEMENT    CASCADE
FK_ACCOUNTREP_CLIENT     NOTHING
Pros answered 6/10, 2010 at 23:0 Comment(0)
I
46

You can try this:

SELECT name, delete_referential_action_desc
FROM sys.foreign_keys
Ilene answered 6/10, 2010 at 23:9 Comment(1)
Thank you. I was doing things the MS way and double-clicking my way to RSI before you provided this little nugget.Pros
T
10

Little late to the game here, but you might also try this:

select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
Townsend answered 30/3, 2011 at 21:46 Comment(0)
A
1

You can use also expression in the WHERE block:

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

or

objectproperty(your_constraint_object_id, 'CnstIsDeleteCascade')
Apotheosize answered 21/4, 2016 at 13:16 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.