【发布时间】:2009-02-10 18:57:26
【问题描述】:
IGNORE_DUP_KEY = ON 基本上告诉 SQL Server 插入不重复的行,但默默地忽略任何重复;默认行为是在不允许的列中有重复项时引发错误并中止整个事务。
我处理过大量数据,这些数据通常至少有一个重复,而实际上不应该重复,所以当我知道一个值不应该重复时,我喜欢使用UNIQUE 约束;但是,当我尝试批量加载数据时,我想要的最后一件事是让它完成 90%,然后突然遇到重复并出错整个事情(是的,我知道明显的解决方案是确保没有重复,但有时我只是收到一个填满数据的电子表格,并告诉我尽快加载它)。
那么,将默认设置为 OFF 的原因是什么,以及为什么不您希望它一直处于打开状态,以便任何非重复条目成功而您不这样做不必担心任何重复;无论如何,重复的内容很可能是错误的。
它与性能有关,还是与其他有关?这似乎是个好主意,但它不是默认行为肯定是有原因的。
主要是,我是否有充分的理由不使用它,我应该知道,还是应该根据具体情况进行评估?
【问题讨论】:
标签: sql-server tsql database-design