sql-server – 为什么不将IGNORE_DUP_KEY设置为ON?
发布时间:2020-12-12 06:19:41 所属栏目:MsSql教程 来源:网络整理
导读:IGNORE_DUP_KEY = ON基本上告诉SQL Server插入非重复行,但是默默地忽略任何重复行;默认行为是引发错误并在不允许它们的列中存在重复时中止整个事务. 我已经处理了大量数据,这些数据通常至少有一个副本,当我不知道时,所以当我知道一个值不应该有重复时,我喜欢
IGNORE_DUP_KEY = ON基本上告诉SQL Server插入非重复行,但是默默地忽略任何重复行;默认行为是引发错误并在不允许它们的列中存在重复时中止整个事务.
我已经处理了大量数据,这些数据通常至少有一个副本,当我不知道时,所以当我知道一个值不应该有重复时,我喜欢使用UNIQUE约束;然而,当我尝试批量加载数据时,我想要的最后一件事就是它完成了90%,然后突然遇到重复并错误地解决了整个事情(是的,我知道显而易见的解决方案是确保没有重复,但有时我只是递给一个充满数据的电子表格并告诉他尽快加载它. 那么,将默认值设置为OFF的原因是什么,以及为什么不希望它一直处于打开状态,以便任何非重复条目成功,而您不必担心任何重复项;无论如何,重复的可能性都在那里. 它与性能或其他相关吗?这似乎是一个好主意,但必须有一些理由说明它不是默认行为. 主要是,有充分的理由不使用我应该知道的,还是应该根据具体情况进行评估? 解决方法只要数据库中存在与“正常”的偏差,您可能想知道它.您保持密钥的独特之处在于由于业务需求而产生的一些限制因素.数据库正在跟踪交易的一面,说’嘿,你希望这是独特的,但现在你说的是相反的事情.下定决心’ 如果这是故意的,你可以通过使用IGNORE_DUP_KEY来请求数据库关闭:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |