Files
sql-scripts/DBG - get FKs with target table and column.sql
2023-03-30 17:51:01 +02:00

25 lines
1.1 KiB
SQL

SELECT
fk.name AS fk_constraint_name,
SCHEMA_NAME(fk_tab.schema_id) + '.' + fk_tab.name /* AS foreign_table */+'.'+fk_col.name AS child,
--' = ' AS [join],
'>-' AS rel,
SCHEMA_NAME(pk_tab.schema_id) + '.' + pk_tab.name /* AS primary_table */+'.'+pk_col.name AS parent,
fk_cols.constraint_column_id AS no
FROM sys.foreign_keys fk
INNER JOIN sys.tables fk_tab
ON fk_tab.object_id = fk.parent_object_id
INNER JOIN sys.tables pk_tab
ON pk_tab.object_id = fk.referenced_object_id
INNER JOIN sys.foreign_key_columns fk_cols
ON fk_cols.constraint_object_id = fk.object_id
INNER JOIN sys.columns fk_col
ON fk_col.column_id = fk_cols.parent_column_id
AND fk_col.object_id = fk_tab.object_id
INNER JOIN sys.columns pk_col
ON pk_col.column_id = fk_cols.referenced_column_id
AND pk_col.object_id = pk_tab.object_id
ORDER BY SCHEMA_NAME(fk_tab.schema_id) + '.' + fk_tab.name,
SCHEMA_NAME(pk_tab.schema_id) + '.' + pk_tab.name,
fk_cols.constraint_column_id;