【问题标题】:View all tables referenced by foreign keys in SSMS查看SSMS中外键引用的所有表
【发布时间】:2015-02-03 18:45:48
【问题描述】:

我有一个包含很多表的数据库,这些表有很多外键。是否有一种简单的方法可以查看给定表中的外键引用的其他表?

我尝试了“查看依赖项”,但这并没有列出所有引用。我也尝试过“脚本表作为 > 创建到”,这对某些表有效,但我对其他表没有足够的权限。

另一个障碍是给定表中的外键与被引用表中的主键名称不同,因此即使我想进行手动搜索(扩展每个表的列)我也不会100% 确定我找到了正确的桌子。

【问题讨论】:

    标签: sql-server-2008-r2 ssms


    【解决方案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
    

    【讨论】:

    • 谢谢,我最终使用了 sp_help 'TableName',这似乎解决了我的问题。
    猜你喜欢
    • 2010-09-17
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多