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;