【SQL Server】外部キー制約の状態を確認する

外部キー制約の状態を確認する方法を
記載します!

PR

SQL

SELECT
	name,
	is_disabled,
	is_not_trusted
FROM
	sys.foreign_keys

外部キー制約に関する情報は、システムテーブル「sys.foreign_keys」で確認できます。

is_disabled」は、外部キー制約の有効/無効を示します。
「0」:有効
「1」:無効

is_not_trusted」は、登録データが外部キー制約により検証済み/未検証を示します。
「0」:検証済み
「1」:未検証

is_disabled:0」かつ「is_not_trusted:0」の場合、外部キー制約は有効かつ制約違反のデータはありません。
※外部キー制約により検証済みであるため。
※基本的にこの組み合わせになっています。

is_disabled:0」かつ「is_not_trusted:1」の場合、外部キー制約は有効ですが制約違反のデータの有無は不明です。
※制約違反のデータがあるかもしれないし無いかもしれない。未検証のため不明。
外部参照キーを無効化 → 「データ登録」 → 「外部参照キーを有効化」の実施により、この組み合わせが起こり得ます。
※この組み合わせは適切な状態ではありません。


詳細は公式サイトをご確認ください。

PR

実行結果

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

外部キー制約の状態を確認
外部キー制約の状態を確認
PR

参考

外部キー制約を無効化/有効化する方法は、以下の記事で紹介しています。

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