外部キー制約を
・無効化
・有効化
する方法を記載します!
前提
例として、今回は
・テーブル「Production.BillOfMaterials」の
・外部キー制約「FK_BillOfMaterials_Product_ComponentID」
を無効化/有効化します。
初期状態
初期状態は
・is_disabled :0(有効)
・is_not_trusted:0(検証済み)
です。
※上記の意味については、下記の記事を参照してください。
外部キー制約を無効化する
外部キー制約無効化の構文
ALTER TABLE テーブル名 NOCHECK CONSTRAINT 外部キー制約名;
--外部キー制約を無効化
ALTER TABLE Production.BillOfMaterials NOCHECK CONSTRAINT FK_BillOfMaterials_Product_ComponentID;
上記を実行すると、
・is_disabled :1(無効)
・is_not_trusted:1(未検証)
になります。
外部キー制約を有効化する
外部キー制約有効化の構文
ALTER TABLE テーブル名 WITH CHECK CHECK CONSTRAINT 外部キー制約名;
--外部キー制約を有効化
ALTER TABLE Production.BillOfMaterials WITH CHECK CHECK CONSTRAINT FK_BillOfMaterials_Product_ComponentID;
詳細は公式サイトをご確認ください。
※下記の公式サイトを「WITH CHECK」で検索すると見つかります。
上記を実行すると、
・is_disabled :0(有効)
・is_not_trusted:0(検証済み)
になります。
※外部キー制約を使用した検証に引っ掛かるデータが登録されていない場合。
※検証に引っ掛かるデータが登録されていた場合、その旨のエラーが発生します。
※検証に引っ掛かるデータが登録されていた場合、「is_not_trusted」は「1:未検証」となります。