【SQL Server】外部キー制約の一覧を取得する

外部キー制約の一覧を取得
できます!

システムテーブル「sys.foreign_keys」により
取得できます!

「sys.tables」および「sys.schema」と紐づけることで
 ・外部キー制約を設定しているスキーマ名テーブル名
も合わせて取得できます!

外部キー制約を設定しているスキーマ名とテーブル名
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

参考①

外部キー制約の削除もできます。

詳細は以下の記事をご確認ください。

PR

参考②

上記で使用した以下の詳細は、公式サイトをご確認ください。

●テーブル「sys.foreign_keys」

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

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