0

SQL Server のバグを発見しました (ここで説明します)。INSERT外部キーチェックを実行せずにステートメントを強制する可能性があるかどうか疑問に思っていますか? このチェックをサーバー全体で数分間無効にするか、特定のテーブルの FK を無効にする (削除しない) ようにしますか?

4

3 に答える 3

4
ALTER TABLE [schema].[table] NOCHECK CONSTRAINT [constraint_name]

それで

ALTER TABLE [schema].[table] CHECK CONSTRAINT [constraint_name]

ただし、これにより FK が信頼されなくなり、制約を再度有効にすると、再検証に時間がかかります。

于 2013-11-06T19:34:25.167 に答える
3

ドロップ コンストレイント

ALTER TABLE Table_Name
DROP CONSTRAINT fk_ConstraintName

操作が完了したら、制約を削除してから、再度作成します。

制約を無効にする

ALTER TABLE MyTable 
NOCHECK CONSTRAINT fk_Constraint_Name

制約を有効にする

ALTER TABLE MyTable 
CHECK CONSTRAINT fk_Constraint_Name
于 2013-11-06T19:33:08.733 に答える
3

INSERT および UPDATE ステートメントでの外部キー制約の無効化を確認します。

  1. INSERT および UPDATE ステートメントの外部キー制約を無効にするには
  2. オブジェクト エクスプローラーで、制約を含むテーブルを展開し、次に Keys フォルダーを展開します。
  3. 制約を右クリックし、[修正] を選択します。
  4. [テーブル デザイナー] の下のグリッドで、[外部キー制約を適用] をクリックし、ドロップダウン メニューから [いいえ] を選択します。
  5. [閉じる] をクリックします。

または単純に次のコマンドを使用します。

ALTER TABLE tablename
NOCHECK CONSTRAINT fk_ConstraintName
于 2013-11-06T19:34:47.910 に答える