IGNORE_DUP_KEY = ON基本上告诉sql Server插入非重复行,但是默默地忽略任何重复行;默认行为是引发错误并在不允许它们的列中存在重复时中止整个事务.
我已经处理了大量数据,这些数据通常至少有一个副本,当我不知道时,所以当我知道一个值不应该有重复时,我喜欢使用UNIQUE约束;然而,当我尝试批量加载数据时,我想要的最后一件事就是它完成了90%,然后突然遇到重复并错误地解决了整个事情(是的,我知道显而易见的解决方案是确保没有重复,但有时我只是递给一个充满数据的电子表格并告诉他尽快加载它.
那么,将默认值设置为OFF的原因是什么,以及为什么不希望它一直处于打开状态,以便任何非重复条目成功,而您不必担心任何重复项;无论如何,重复的可能性都在那里.
它与性能或其他相关吗?这似乎是一个好主意,但必须有一些理由说明它不是默认行为.
主要是,有充分的理由不使用我应该知道的,还是应该根据具体情况进行评估?