How can I list all foreign keys referencing a given table in SQL Server?
Use the system catalog views sys.foreign_keys, sys.foreign_key_columns, sys.columns, and sys.tables. For example:
SELECT fk.name AS ForeignKeyName, OBJECT_NAME(fk.parent_object_id) AS ReferencingTable, c.name AS ReferencingColumn, OBJECT_NAME(fk.referenced_object_id) AS ReferencedTable, rc.name AS ReferencedColumn FROM sys.foreign_keys fk JOIN sys.foreign_key_columns fkc ON fk.object_id = fkc.constraint_object_id JOIN sys.columns c ON fkc.parent_object_id = c.object_id AND fkc.parent_column_id = c.column_id JOIN sys.columns rc ON fkc.referenced_object_id = rc.object_id AND fkc.referenced_column_id = rc.column_id WHERE OBJECT_NAME(fk.referenced_object_id) = 'YourTableName';
Replace 'YourTableName'
with the table you want to check. This query displays each foreign key’s name, the referencing table/column, and the referenced table/column.
CONTRIBUTOR
TechGrind