4

MSDN と Google でかなりの検索を行いましたが、IGNORE_DUP_KEY オプションの説明は非常に限られているようです。

私の混乱、

  1. IGNORE_DUP_KEY オプションは列のオプションですか? テーブル用?いくつかの列の?インデックスの場合 (インデックスを一意にする)?

  2. IGNORE_DUP_KEY を Yes に設定すると、(一括挿入 WriteToServer ADO.Net 関数を使用して) レコードのバッチを重複キーと共に挿入する場合 (たとえば、データベースに既に存在するいくつかの値を挿入する場合)、SQL Server はエラーをスローしません。バッチ ジョブは正常に完了しますが、重複した行は挿入されません。他のすべての行が挿入され、SQL Server はそれをジョブの成功として扱います。私の理解は正しいですか?

前もって感謝します、ジョージ

4

2 に答える 2

8

IGNORE_DUP_KEY は CREATE INDEX のオプションであり、複数行の挿入にのみ影響します。

IGNORE_DUP_KEY = オン

  • すべての一意の行が挿入され、警告が発行され、重複する行は挿入されません

IGNORE_DUP_KEY = オフ

  • エラーが発生し、行は挿入されません
于 2009-03-27T14:48:56.993 に答える
2
  1. IGNORE_DUP_KEY は、特定の UNIQUE INDEX 用です。

  2. 「キャンセル後、その時点でアクティブだったトランザクションは、更新または挿入が行われなかったかのように続行される可能性があります。非重複キーは正常に挿入されます。」はい、一括挿入は成功を報告します。

于 2009-03-27T14:21:02.550 に答える