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 is an option of CREATE INDEX and only affects inserts of multiple rows:

IGNORE_DUP_KEY = ON

  • all unique rows get inserted, a warning is issued, and the duplicate rows are not inserted

IGNORE_DUP_KEY = OFF

  • an error is issued and no rows are inserted
于 2009-03-27T14:48:56.993 回答
2
  1. IGNORE_DUP_KEY 用于给定的唯一索引。

  2. “取消后,任何当时处于活动状态的事务都可以继续进行,就好像更新或插入从未发生过一样。非重复密钥被正常插入。” 所以是的,批量插入将报告成功。

于 2009-03-27T14:21:02.550 回答