【问题标题】:SQL tool to list the related tables to the parent table将相关表列出到父表的 SQL 工具
【发布时间】:2018-07-27 09:13:27
【问题描述】:

亲爱的,

您能否帮我找到一个 SQL 工具,它会显示与父表有关系的表的列表。示例:

从 table_1 中选择 *

当我写 join 时,将列出与 table_1 相关的表相关,在选择其中一个表后,它也会显示基于列 PK 和 FK 的连接。

我尝试过 SQL promt,但它列出了所有对象,而不仅仅是我可以使用 table_1 加入的对象。

我正在处理一个包含 300 多个表的数据库,并且很难找到表之间的关系。

谢谢!

【问题讨论】:

标签: sql-server join sql-server-2012 sqlhelper red-gate-sql-prompt


【解决方案1】:

此查询将帮助您查找引用给定表的表。如果需要,您还可以修改查询以提供逆向查询。

SELECT  
     KCU1.CONSTRAINT_NAME AS FK_CONSTRAINT_NAME 
    ,KCU1.TABLE_NAME AS FK_TABLE_NAME 
    ,KCU1.COLUMN_NAME AS FK_COLUMN_NAME 
    ,KCU1.ORDINAL_POSITION AS FK_ORDINAL_POSITION 
    ,KCU2.CONSTRAINT_NAME AS REFERENCED_CONSTRAINT_NAME 
    ,KCU2.TABLE_NAME AS REFERENCED_TABLE_NAME 
    ,KCU2.COLUMN_NAME AS REFERENCED_COLUMN_NAME 
    ,KCU2.ORDINAL_POSITION AS REFERENCED_ORDINAL_POSITION 
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC 

LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU1 
    ON KCU1.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG  
    AND KCU1.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA 
    AND KCU1.CONSTRAINT_NAME = RC.CONSTRAINT_NAME 

LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU2 
    ON KCU2.CONSTRAINT_CATALOG = RC.UNIQUE_CONSTRAINT_CATALOG  
    AND KCU2.CONSTRAINT_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA 
    AND KCU2.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME 
    AND KCU2.ORDINAL_POSITION = KCU1.ORDINAL_POSITION 
where KCU2.TABLE_NAME  = 'ReferencedTableName'

【讨论】:

    猜你喜欢
    • 2021-05-05
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    相关资源
    最近更新 更多