SQL 不能插入重复键-错误 主键列是自动增长

产生原因:这个错误可能通过某个操作把自增列的种子给改小了,所以insert的时候报重复键错误。
解决方案:1、直接在数据库上操作,取消自增长,再加上自增长,种子恢复正常。 但这种操作方式如果数据库比较大的话,会报超时的错误,可以使用第二种解决方案,通过语句来完成。
2、重置自动增长列种子: dbcc checkident('tb',reseed,业务表最大值+1) 第3个参数是业务表自动增长列最大值+1

 

SQL的自增列挺好用,只是开发过程中一旦删除数据,标识列就不连续了 写起来 也很郁闷,所以查阅了一下标识列重置的方法 发现可以分为三种:

--- 删除原表数据,并重置自增列
truncate table tablename  --truncate方式也可以重置自增字段
--重置表的自增字段,保留数据
DBCC CHECKIDENT (tablename,reseed,0) 
-- 设置允许显式插入自增列
SET IDENTITY_INSERT tablename  ON
-- 当然插入完毕记得要设置不允许显式插入自增列
SET IDENTITY_INSERT tablename  Off
posted @ 2018-09-27 17:38  Lyfing  阅读(3414)  评论(0编辑  收藏  举报