是不是使用DBCC CHECKIDENT造成的原因

解决方案 »

  1.   

    一、确认编号的起始值!
    二、通过select 语句查看是否有重复编号
    三、通过select 语句查看是否有断号
      

  2.   


    二、通过select 语句查看是否有重复编号
    引起编号重复的原因有多种,常见的是:
    1  因为用DBCC CHECKIDENT重置编号起始值时,小于当前记录最大值
    2  通过 set identity_insert tablename on 
       强制性插入相同编号值,导致重复。
      

  3.   

    楼主说的问题按正常操作(从1开始,步增为1,没有使用set identity_insert )是不会发生的.
      

  4.   

    如果是被删除,如何保护ms sql的数据安全
    ------
    你肯定你的程序没有做过删除操作?
      

  5.   

    在事务中插入数据后事务被回滚,留下一个断的标识列。
    这种情况很正常,没什么需要追究的。--------------------------
    http://chinadba.cn
    深圳骄子数据库服务网
    最具实战经验的数据库优化、管理、设计、培训。
      

  6.   

    导致的原因有:
    1. 新增并删除过记录
    2. 使用 dbcc checkident重新设置过起始值
    3. 使用set identity_insert tbname on 强制插入过记录
    4. 插入记录的处理有失败的情况, 这种情况标识值会增长, 回滚只会回滚插入失败, 不会回滚标识值.
      

  7.   

    就是网页会员注册,有些自动编号被跳过,
    使用的是标准的sql,没有什么事务存储过程什么的,
    我对t-sql还不了解,
    我自己没有删除过记录,网页删除记录的功能也还未写,我现在就是疑问,这些被跳过的自动编号是人为删除,还是数据库在插入记录时有其他原因导致的