2011-03-02 11 views
4

私は外部キーを持つSQL Server 2005でテーブルを持っており、それは巨大なデータの読み込みのため無効にし、再度有効化:SQL Serverのテーブルに既にあるデータのプライマリ/外部キー制約を再確認するにはどうすればよいですか?

例:

alter table table1 nocheck constraint fk_1 
go 
lots of inserts... 
go 
alter table table1 check constraint fk_1 
go 

、質問:そこにあるのこのちょうど挿入されたデータを再チェックする方法?

答えて

8

構文は単語「チェック」と少し愚かに見える繰り返したが、何が欲しいのです:

alter table table1 with check check constraint fk_1 
go 

オプション「チェックで」制約に対して既存のデータを検証します追加。これを行うと、制約がuntrustedにならないようになります。

既存のデータが制約に違反している場合、あなたはこのようになります。エラー取得します:

The ALTER TABLE statement conflicted with the CHECK constraint "fk_1". 
+0

をありがとうございました!チャームのように働いた! –

+0

+1は、信頼できない制約についての点です。 WITH CHECKを使用して制約を有効にすることは、決して良い考えではありません。常にWITH CHECK CHECKを使用してください。それは愚かな構文ですが、それはすべての違いを作ります。 – sqlvogel

関連する問題