SQLserverでテーブルに設定されている外部キー(FOREIGN KEY)の一覧を取得する必要があったので調査しました。
外部キー(foreign key、FK)は、コンピュータの関係データベースの関係モデルの文脈において、2つの関係変数(表)の間の参照整合性制約をいう。
外部キー(FOREIGN KEY)の情報を取得する
SQLServerで外部キー(FOREIGN KEY)の情報を取得するSQLを調べるとすぐに見つかりました。
ということで
SELECT fk.name AS 外部キー名 ,fkc.constraint_column_id as 外部キーカラムID ,pt.name AS 参照元テーブル名 ,pc.name AS 参照元カラム名 ,rt.name AS 参照先テーブル名 ,rc.name AS 参照先カラム名 FROM sys.foreign_keys AS fk INNER JOIN sys.foreign_key_columns AS fkc ON fk.object_id = fkc.constraint_object_id INNER JOIN sys.tables AS pt ON fkc.parent_object_id = pt.object_id INNER JOIN sys.columns AS pc ON fkc.parent_object_id = pc.object_id AND fkc.parent_column_id = pc.column_id INNER JOIN sys.tables AS rt ON fkc.referenced_object_id = rt.object_id INNER JOIN sys.columns AS rc ON fkc.referenced_object_id = rc.object_id AND fkc.referenced_column_id = rc.column_id ORDER BY fk.name ,fkc.constraint_column_id
で検索することができます。
テーブルを指定して取得したければWHERE句に参照先のテーブルなどを指定すると目的のテーブルのものだけ取得することができます。