Ham*_*ebi 4 sql sql-server foreign-keys primary-key foreign-key-relationship
我想在我的数据库中找到所有引用某个表的主键的外键.
例如,我A在表中有一列T是主键.现在我想找到A外键约束中引用哪些表列?
我考虑过的一个简单方法是检查数据库图表,但这只适用于数据库非常小的情况.对于拥有50个以上表的数据库来说,这不是一个很好的解决方案.
任何替代品?
小智 5
在最后一行,将[主键表]更改为表名,将[主键列]更改为列名,然后在数据库上执行此脚本以获取主键的外键.
SELECT FK.TABLE_NAME as Key_Table,CU.COLUMN_NAME as Foreignkey_Column,
PK.TABLE_NAME as Primarykey_Table,
PT.COLUMN_NAME as Primarykey_Column,
C.CONSTRAINT_NAME as Constraint_Name
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK ON C.CONSTRAINT_NAME =Fk.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK ON C.UNIQUE_CONSTRAINT_NAME=PK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
INNER JOIN (
SELECT i1.TABLE_NAME, i2.COLUMN_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 ON i1.CONSTRAINT_NAME =i2.CONSTRAINT_NAME
WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
) PT ON PT.TABLE_NAME = PK.TABLE_NAME
WHERE PK.TABLE_NAME = '[Primary Key Table]' and PT.COLUMN_NAME = '[Primary Key Column]';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29096 次 |
| 最近记录: |