SQLServerで外部キー(FOREIGN KEY)の一覧情報を取得する方法

プログラミング SQL Server

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句に参照先のテーブルなどを指定すると目的のテーブルのものだけ取得することができます。

タイトルとURLをコピーしました