Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come posso scoprire quale vincolo FOREIGN KEY fa riferimento a una tabella in SQL Server?

Eccolo:

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'

In questo modo otterrai la tabella di riferimento e il nome della colonna.

Modificato per utilizzare sys.tables invece di sys.objects generico come da suggerimento di commento. Grazie, marc_s