我想组合一个 sql 查询,它将显示复合外键的哪些列对应于它们的主/唯一键的哪些列。
例如,如果数据库有
CREATE TABLE TA
(
B int,
C int
)
ALTER TABLE TA ADD CONSTRAINT [UK_CB] UNIQUE NONCLUSTERED
(
C ASC,
B ASC
)
CREATE TABLE TB
(
D int,
E int
)
ALTER TABLE TB ADD CONSTRAINT [FK_TA] FOREIGN KEY (D, E) REFERENCES TA(C, B)
然后我希望查询返回
| Pk/Uk | PK/UK Column | FK | FK Column |
--------------------------------------------
| UK_CB | C | FK_TA | D |
| UK_CB | B | FK_TA | E |
如果可能的话,我宁愿只使用 INFORMATION_SCHEMA 视图。
我知道 INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE,但这只会给我特定约束中的列。
我可以加入 INFORMATION_SCHEMA.COLUMNS 并使用序数位置做一些事情,但这会错误地假设关键引用是按序数顺序排列的。
有没有办法查询数据库以获得复合键之间的列对应关系?