Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xavierzwirtz/881a17e3617fe9e0f9b85c7f049c4873 to your computer and use it in GitHub Desktop.
Save xavierzwirtz/881a17e3617fe9e0f9b85c7f049c4873 to your computer and use it in GitHub Desktop.
select schema_name(fk_tab.schema_id) as foreign_schema,
fk_tab.name as foreign_table,
schema_name(pk_tab.schema_id) as primary_schema,
pk_tab.name as primary_table
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
cross apply (select col.[name] + ', '
from sys.foreign_key_columns fk_c
inner join sys.columns col
on fk_c.parent_object_id = col.object_id
and fk_c.parent_column_id = col.column_id
where fk_c.parent_object_id = fk_tab.object_id
and fk_c.constraint_object_id = fk.object_id
order by col.column_id
for xml path ('') ) D (column_names)
order by schema_name(fk_tab.schema_id) + '.' + fk_tab.name,
schema_name(pk_tab.schema_id) + '.' + pk_tab.name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment