SQL Server 2005に外部キーを持つテーブルがあり、大量のデータを読み込むために無効にしてから、再度有効にしました。
例:
alter table table1 nocheck constraint fk_1
go
lots of inserts...
go
alter table table1 check constraint fk_1
go
さて、質問:この挿入されたばかりのデータを再チェックする方法はありますか?
SQL Server 2005に外部キーを持つテーブルがあり、大量のデータを読み込むために無効にしてから、再度有効にしました。
例:
alter table table1 nocheck constraint fk_1
go
lots of inserts...
go
alter table table1 check constraint fk_1
go
さて、質問:この挿入されたばかりのデータを再チェックする方法はありますか?
構文は「チェック」という単語が繰り返されているので少しばかげているように見えますが、必要なのは次のとおりです。
alter table table1 with check check constraint fk_1
go
「チェックあり」オプションを追加すると、制約に対して既存のデータが検証されます。これを行うと、制約が信頼できなくなるのを防ぐこともできます。
既存のデータが制約に違反している場合は、次のようなエラーが発生します。
The ALTER TABLE statement conflicted with the CHECK constraint "fk_1".