SQL Server中的IGNORE_DUP_KEY选项

时间:2009-03-27 14:16:45

标签: sql-server ado.net unique

我在MSDN和Google上做了很多搜索,但看起来IGNORE_DUP_KEY选项的描述非常有限。

我的困惑,

  1. IGNORE_DUP_KEY选项是列的选项吗?一张桌子?几列?索引(使索引唯一)?

  2. 如果将IGNORE_DUP_KEY设置为Yes,则在插入一批带有重复键的记录(使用批量插入WriteToServer ADO.Net函数)时(例如,我插入一些已存在于数据库中的值),SQL Server将不会抛出一个错误。批处理作业将成功完成,但不会插入重复的行。将插入所有其他行,SQL Server将其视为作业成功。我的理解是否正确?

  3. 提前谢谢, 乔治

2 个答案:

答案 0 :(得分:6)

IGNORE_DUP_KEY是CREATE INDEX的一个选项,只影响多行的插入:

IGNORE_DUP_KEY = ON

  • 插入所有唯一行,发出警告,并且不插入重复行

IGNORE_DUP_KEY = OFF

  • 发出错误且未插入任何行

答案 1 :(得分:2)

  1. IGNORE_DUP_KEY用于给定的唯一索引。

  2. “取消后,当时处于活动状态的任何事务可能会继续,就好像更新或插入从未发生过一样.Nonduplicate键正常插入。”是的,批量插入会报告成功。