sql-server – 为什么不将IGNORE_DUP_KEY设置为ON?

前端之家收集整理的这篇文章主要介绍了sql-server – 为什么不将IGNORE_DUP_KEY设置为ON?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
IGNORE_DUP_KEY = ON基本上告诉sql Server插入非重复行,但是默默地忽略任何重复行;默认行为是引发错误并在不允许它们的列中存在重复时中止整个事务.

我已经处理了大量数据,这些数据通常至少有一个副本,当我不知道时,所以当我知道一个值不应该有重复时,我喜欢使用UNIQUE约束;然而,当我尝试批量加载数据时,我想要的最后一件事就是它完成了90%,然后突然遇到重复并错误解决了整个事情(是的,我知道显而易见的解决方案是确保没有重复,但有时我只是递给一个充满数据的电子表格并告诉他尽快加载它.

那么,将默认值设置为OFF的原因是什么,以及为什么不希望它一直处于打开状态,以便任何非重复条目成功,而您不必担心任何重复项;无论如何,重复的可能性都在那里.

它与性能或其他相关吗?这似乎是一个好主意,但必须有一些理由说明它不是默认行为.

主要是,有充分的理由不使用我应该知道的,还是应该根据具体情况进行评估?

解决方法

只要数据库中存在与“正常”的偏差,您可能想知道它.

您保持密钥的独特之处在于由于业务需求而产生的一些限制因素.数据库正在跟踪交易的一面,说’嘿,你希望这是独特的,但现在你说的是相反的事情.下定决心’

如果这是故意的,你可以通过使用IGNORE_DUP_KEY来请求数据库关闭:)

猜你在找的MsSQL相关文章