2010-10-06 3 views
10

Dans SQL Server 2005, puis-je créer une requête SQL pour répertorier toutes les contraintes FK sur les tables de la base de données et afficher la règle de suppression? (C.-à-rien, cascade, définissez null, ou par défaut défini)Recherche de toutes les contraintes FK et de leurs règles de suppression (SQL Server)

La sortie Je cherche quelque chose semblable à:

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

Répondre

22

Vous pouvez essayer ceci:

SELECT name, delete_referential_action_desc 
FROM sys.foreign_keys 
+1

Merci. Je faisais les choses de la façon MS et en double-cliquant sur mon chemin vers RSI avant de fournir cette petite pépite. – Synesso

4

un peu tard au jeu ici, mais vous pouvez aussi essayer ceci:

select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 
0

vous pouvez également utiliser l'expression dans le bloc WHERE:

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

ou

objectproperty(your_constraint_object_id, 'CnstIsDeleteCascade') 
Questions connexes