Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann ich herausfinden, welche FOREIGN KEY-Einschränkung auf eine Tabelle in SQL Server verweist?

Hier ist es:

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'

Auf diese Weise erhalten Sie die referenzierende Tabelle und den Spaltennamen.

Bearbeitet, um sys.tables anstelle von generischen sys.objects gemäß Kommentarvorschlag zu verwenden. Danke, marc_s