sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo puedo averiguar qué restricción FOREIGN KEY hace referencia a una tabla en SQL Server?

Aquí está:

SELECT 
   OBJECT_NAME(f.parent_object_id) TableName,
   COL_NAME(fc.parent_object_id,fc.parent_column_id) ColName
FROM 
   sys.foreign_keys AS f
INNER JOIN 
   sys.foreign_key_columns AS fc 
      ON f.OBJECT_ID = fc.constraint_object_id
INNER JOIN 
   sys.tables t 
      ON t.OBJECT_ID = fc.referenced_object_id
WHERE 
   OBJECT_NAME (f.referenced_object_id) = 'YourTableName'

De esta forma, obtendrá la tabla de referencia y el nombre de la columna.

Editado para usar sys.tables en lugar de sys.objects genéricos según la sugerencia del comentario. Gracias, marc_s