2010-10-06 21 views
10

En SQL Server 2005, ¿puedo emitir una consulta SQL para enumerar todas las restricciones FK en las tablas dentro del DB y mostrar la regla de eliminación? (Es decir, nada, en cascada, sistema nulo, o un conjunto predeterminado)Consulta para encontrar todas las restricciones FK y sus reglas de eliminación (SQL Server)

La salida que estoy buscando es algo parecido a:

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

Respuesta

22

Puede probar esto:

SELECT name, delete_referential_action_desc 
FROM sys.foreign_keys 
+1

Gracias. Estaba haciendo las cosas de la manera MS y haciendo doble clic en mi camino a RSI antes de proporcionar esta pequeña pepita. – Synesso

4

poco tarde en el juego aquí, pero también se podría tratar esto:

select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 
0

puede utilizar también la expresión en el bloque donde:

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

o

objectproperty(your_constraint_object_id, 'CnstIsDeleteCascade') 
Cuestiones relacionadas