亲爱的,
您能否帮我找到一个 SQL 工具,该工具将向我显示与父表有关系的表列表。例子:
从 table_1 中选择 *
当我编写连接时 ,将列出与table_1相关的表,在选择其中一个表后,它还将显示基于列 PK 和 FK 的连接。
我已经尝试过 SQL promt,但它列出了所有对象,而不仅仅是我可以加入table_1的对象。
我正在处理一个有 300 多个表的数据库,并且很难找到表之间的关系。
谢谢!
亲爱的,
您能否帮我找到一个 SQL 工具,该工具将向我显示与父表有关系的表列表。例子:
从 table_1 中选择 *
当我编写连接时 ,将列出与table_1相关的表,在选择其中一个表后,它还将显示基于列 PK 和 FK 的连接。
我已经尝试过 SQL promt,但它列出了所有对象,而不仅仅是我可以加入table_1的对象。
我正在处理一个有 300 多个表的数据库,并且很难找到表之间的关系。
谢谢!
此查询将帮助您查找引用给定表的表。如果需要,您还可以修改查询以提供相反的结果。
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'