Files
sql-scripts/DBG - list fk and pk on tables in db.sql
Thierry Schork 42fb2e851c cleanup
2023-01-05 11:32:51 +01:00

42 lines
1.6 KiB
SQL

/*
Server: sun791aps.sunstore.ch
Format: GCM
Business: TPPHAR
type: PROD
Version: 21.3.11111.00064
02.11.2022, TSC
*/
USE Arizona;
SELECT
SCHEMA_NAME(tab.SCHEMA_ID) + '.' + tab.name AS [table]
,col.column_id
,col.name AS column_name
,CASE
WHEN fk.OBJECT_ID IS NOT NULL THEN '>-'
ELSE NULL
END AS rel
,SCHEMA_NAME(pk_tab.SCHEMA_ID) + '.' + pk_tab.name AS primary_table
,pk_col.name AS pk_column_name
,fk_cols.constraint_column_id AS NO
,fk.name AS fk_constraint_name
FROM sys.tables tab
INNER JOIN sys.columns col
ON col.OBJECT_ID = tab.OBJECT_ID
LEFT OUTER JOIN sys.foreign_key_columns fk_cols
ON fk_cols.parent_object_id = tab.OBJECT_ID
AND fk_cols.parent_column_id = col.column_id
LEFT OUTER JOIN sys.foreign_keys fk
ON fk.OBJECT_ID = fk_cols.constraint_object_id
LEFT OUTER JOIN sys.tables pk_tab
ON pk_tab.OBJECT_ID = fk_cols.referenced_object_id
LEFT OUTER JOIN sys.columns pk_col
ON pk_col.column_id = fk_cols.referenced_column_id
AND pk_col.OBJECT_ID = fk_cols.referenced_object_id
WHERE fk.OBJECT_ID IS NOT NULL
--AND SCHEMA_NAME(tab.SCHEMA_ID) = 'dbo'
--AND tab.name='customer'
ORDER BY SCHEMA_NAME(tab.SCHEMA_ID) + '.' + tab.name
,col.column_id;