我们都知道,主键具有唯一性,所以当插入数据时主键不能重复,但是这就会产生一个问题,那就是如果一次插入大量数据集时,这个数据集跟当前数据库有一些数据时重复的,这样插入的时候会产生主键冲突。那么如何忽略这些重复的主键呢?
刚开始在网上搜索的时候,大部分推荐的是INSERT IGNORE INTO 或者On Duplicate Key Update。但悲催的是sqlserver貌似不支持这种写法。
最后终于解决了问题,方法是:设置数据表的IGNORE_DUP_KEY属性为ON即可,设置完后,当插入数据遇到重复主键时就不会报错了。
具体设置的语句模板为:ALTER TABLE dbo.TEST ADD CONSTRAINT uniqueRows UNIQUE (ColA, ColB, ColC, ColD) WITH (IGNORE_DUP_KEY = ON)
如果我的回答解决了你的问题,别忘了点个赞哦~
参考文章:关于sql server:(IGNORE_DUP_KEY = ON)或在执行INSERT时进行排它检查? | 码农家园