zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    [VirtaulBox]网络连接设置
    LeetCode
    LeetCode
    LeetCode
    LeetCode-37.Sudok Solver
    LeetCode-36.Valid Sudoku
    LeetCode-52.N-Queen II
    LeetCode-51.N-Queens
    LeetCode-22.Generate Parentheses
    LeetCode-111.Mininum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/lyfingchow/p/9714525.html
Copyright © 2011-2022 走看看