複合外部キーのどの列が主/一意キーのどの列に対応するかを示す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 に参加して序数の位置で何かを行うこともできますが、それはキー参照が序数であるという誤った仮定をします。
データベースにクエリを実行して、複合キー間の列の対応を取得する方法はありますか?