我有一个包含很多表的数据库,这些表有很多外键。有没有一种简单的方法来查看给定表中外键引用的其他表?
我试过"查看依赖关系"但是这并没有列出所有的参考文献。我还试过"脚本表作为>创造于"这对一些桌子有用,但我对其他人缺乏足够的许可。
另一个障碍是给定表中的外键与被引用表中的主键名称不同,因此即使我想进行手动搜索(展开每个表的列)我不会100%确定我找到了合适的桌子。
答案 0 :(得分:1)
我认为以下stackoverflow link有您正在寻找的答案。它有多个查询我使用" Gustavo Rubio "指定的查询,请在下面找到相同的查询
SELECT obj.name AS FK_NAME,
sch.name AS [schema_name],
tab1.name AS [table],
col1.name AS [column],
tab2.name AS [referenced_table],
col2.name AS [referenced_column]
FROM
sys.foreign_key_columns fkc
INNER JOIN
sys.objects obj ON obj.object_id = fkc.constraint_object_id
INNER JOIN
sys.tables tab1 ON tab1.object_id = fkc.parent_object_id
INNER JOIN
sys.schemas sch ON tab1.schema_id = sch.schema_id
INNER JOIN
sys.columns col1 ON col1.column_id = parent_column_id AND col1.object_id = tab1.object_id
INNER JOIN
sys.tables tab2 ON tab2.object_id = fkc.referenced_object_id
INNER JOIN
sys.columns col2 ON col2.column_id = referenced_column_id AND col2.object_id = tab2.object_id
ORDER BY
[table] ASC