【SQL Server/sys.foreign_keys 】外部キー制約の一覧を確認する

システムテーブル「sys.foreign_keys」を参照することで、
 ・外部キー制約の一覧
を確認できます!

「sys.tables」及び「sys.schema」と紐づけることで、
 ・外部キー制約を設定しているスキーマ名テーブル名
も併せて確認できます!

外部キー制約を設定しているスキーマ名とテーブル名
外部キー制約を設定しているスキーマ名とテーブル名
PR

システムテーブル「sys.foreign_keys」とは

外部キー制約に関する情報を管理しているテーブルです。
システムテーブル「sys.objects」を継承しています。
※sys.objectsが持つ列を持っています。

PR

SQL

ここでは当該列に対し別名を付けます。
・外部キー制約の名前
・外部キー制約を設定しているスキーマ名とテーブル名

また好みでソートします。

SELECT
	fs.name AS '外部キー制約の名前',
	s.name + '.' + t.name AS '外部キー制約を設定しているスキーマ名とテーブル名'
FROM
	sys.foreign_keys fs
INNER JOIN sys.tables t
	ON t.object_id = fs.parent_object_id
INNER JOIN sys.schemas s
	ON s.schema_id = t.schema_id
ORDER BY
	外部キー制約の名前
PR

実行結果

外部キー制約の一覧を確認できました。

外部キー制約の一覧
外部キー制約の一覧

SQLの結果を見ると、
 ・テーブル「Production.BillOfMaterials」には外部キー制約が3つ設定されている
ことが確認できます。

裏を取るためにオブジェクトエクスプローラーを見ると、上記の通り
 ・テーブル「Production.BillOfMaterials」には外部キー制約が3つ設定されている
ことが確認できます。

外部キー制約
PR

備考(外部キー制約の削除)

外部キー制約の削除については、以下の記事を参照してください。

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