25 lines
1.1 KiB
SQL
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; |