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
  • 相关阅读:
    Power of Cryptography
    Radar Installation
    Emag eht htiw Em Pleh
    Help Me with the Game
    89. Gray Code
    87. Scramble String
    86. Partition List
    85. Maximal Rectangle
    84. Largest Rectangle in Histogram
    82. Remove Duplicates from Sorted List II
  • 原文地址:https://www.cnblogs.com/lyfingchow/p/9714525.html
Copyright © 2011-2022 走看看