![](http://sqlserver.work/wp-content/themes/cocoon-master/images/b-woman.png)
外部キー制約の一覧を取得
できます!
![](http://sqlserver.work/wp-content/themes/cocoon-master/images/b-woman.png)
システムテーブル「sys.foreign_keys」により
取得できます!
![](http://sqlserver.work/wp-content/themes/cocoon-master/images/b-woman.png)
「sys.tables」および「sys.schema」と紐づけることで
・外部キー制約を設定しているスキーマ名とテーブル名
も合わせて取得できます!
![](https://sqlserver.work/wp-content/uploads/2021/01/sql_foreign_keys_010.png)
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
外部キー制約の名前
実行結果
外部キー制約の一覧を取得できました。
![実行結果](https://sqlserver.work/wp-content/uploads/2021/01/sql_foreign_keys_007.png)
SQLの結果を見ると、
・テーブル「Production.BillOfMaterials」には外部キー制約が3つ設定されている
ことが確認できます。
裏を取るためにオブジェクトエクスプローラーを見ると、上記の通り
・テーブル「Production.BillOfMaterials」には外部キー制約が3つ設定されている
ことが確認できます。
![](https://sqlserver.work/wp-content/uploads/2021/01/sql_foreign_keys_008.png)
参考①
外部キー制約の削除もできます。
詳細は以下の記事をご確認ください。
参考②
上記で使用した以下の詳細は、公式サイトをご確認ください。
●テーブル「sys.foreign_keys」