產生原因:這個錯誤可能通過某個操作把自增列的種子給改小了,所以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
