日期:2014-05-18  浏览次数:20616 次

SQL Server 自增长列大数据量插入时索引冲突
SQL SERVER 自增长列有大量数据并发插入时,好像会报索引冲突的情况,求高人解释,并给一个解决方法

------解决方案--------------------
自增列设索引了吗?
你确定是自增列引起的?
------解决方案--------------------
探讨
不会哦。是不是写了触发器用到了自增id

------解决方案--------------------
没有遇到过 索引冲突

楼主的错误信息 完整的是怎么提示的?
------解决方案--------------------
是不是插入主键,触发器又重新插入一遍呀?

导致冲突?
------解决方案--------------------
建议楼主 先给出 报错的 完整信息?
------解决方案--------------------
是什么索引?
------解决方案--------------------
探讨
Key violation.
违反了 PRIMARY KEY 约束 'PK__*****'。不能在对象 '*******' 中插入重复键。


引用:

建议楼主 先给出 报错的 完整信息?

------解决方案--------------------
探讨

Key violation.
违反了 PRIMARY KEY 约束 'PK__*****'。不能在对象 '*******' 中插入重复键。


------解决方案--------------------
遇到过类似情况,多张表同时向一张表插入数据时,如果多张表存在主键列,而各表的主键列为自增的,那么同时向一张表插入数据时,会报这个错。因为多张表的主键列在同时插入数据的情况下可能存在重复的,而一张表的主键列是不允许有重复的,当插入重复数据时,会报此错。
解决方法:
假设多张表为:a,b,c
a,b,c表的主键列保证依次递增,当a表数据到100完成时,b表自增列最小值应改为101,依次到c表,
可用触发器实现,当a表完成数据录入,自动修改b表自增列为a表最大值加1,依次进行。
这样确保了多张表的数据不会重复,再往一张表插数据时就不会再报此错了。
------解决方案--------------------
探讨

我这只有一张表,索引是自增长列,往这张表里插数据,竟然自增长列索引冲突
引用:

遇到过类似情况,多张表同时向一张表插入数据时,如果多张表存在主键列,而各表的主键列为自增的,那么同时向一张表插入数据时,会报这个错。因为多张表的主键列在同时插入数据的情况下可能存在重复的,而一张表的主键列是不允许有重复的,当插入重复数据时,会报此错。
解决方法:
假设……