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」の場合、外部キー制約は有効ですが制約違反のデータの有無は不明です。
※制約違反のデータがあるかもしれないし無いかもしれない。未検証のため不明。
※「外部参照キーを無効化」 → 「データ登録」 → 「外部参照キーを有効化」の実施により、この組み合わせが起こり得ます。
※この組み合わせは適切な状態ではありません。
詳細は公式サイトをご確認ください。
実行結果
外部キー制約の状態を確認できました。
外部キー制約の状態を確認
参考
外部キー制約を無効化/有効化する方法は、以下の記事で紹介しています。