Aar*_*ght 33
如果您的数据库支持信息架构视图(大多数都支持),那么您可以运行此查询:
SELECT
c.CONSTRAINT_NAME,
cu.TABLE_NAME AS ReferencingTable, cu.COLUMN_NAME AS ReferencingColumn,
ku.TABLE_NAME AS ReferencedTable, ku.COLUMN_NAME AS ReferencedColumn
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS c
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cu
ON cu.CONSTRAINT_NAME = c.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE ku
ON ku.CONSTRAINT_NAME = c.UNIQUE_CONSTRAINT_NAME
Run Code Online (Sandbox Code Playgroud)
这将输出所有引用约束(外键),源(引用)表/列和主键(引用)表/列的列表.
如果要查看对特定表的引用,只需添加:
WHERE ku.TABLE_NAME = 'SomeTable'
Run Code Online (Sandbox Code Playgroud)
Dip*_*iya 17
使用内置过程获取给定表的相关表的简单且最简单的解决方案.
exec sp_fkeys 'Your_PK_TABLE_NAME'
Run Code Online (Sandbox Code Playgroud)
根据数据库产品,您应该能够INFORMATION_SCHEMA像这样查询视图:
Select FK.TABLE_SCHEMA, FK.TABLE_NAME
From INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS As RC
Join INFORMATION_SCHEMA.TABLE_CONSTRAINTS As PK
On PK.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME
Join INFORMATION_SCHEMA.TABLE_CONSTRAINTS As FK
On FK.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
Where PK.TABLE_SCHEMA = 'dbo'
And PK.TABLE_NAME = '<target table name>'
Run Code Online (Sandbox Code Playgroud)