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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM