一张sql2005的表,ID设为自增,有时这个ID不连续。明明是接连添加两条记录,这个ID怎么不是连续?

解决方案 »

  1.   

    因为你有可能对这个表中的记录做了删除的操作或者将ID的自增暂时去掉,做了插入等等,ID会不连续。
      

  2.   

    对这个表中的记录做了删除的操作应该没有,我的情景是,进行add  连续两次add(本地测试),结果ID不是连续中间少了一个
      

  3.   

    应该是被删除过数据,你在这个表上设置一下delete时的after触发器,一但触发就直接回滚,取消删除
    或者使用设置一下delete时的instead of触发器,里面什么也不做就可以了,
    这样防止引表被删除数据
      

  4.   

    有个问题是,一般情况下这个add操作是正常的,那个ID是连续的,只是有时候不连续。如果说是触发器的问题,那为什么会偶尔出现而不是经常出现?
      

  5.   

    难道是add一条数据,当不成功时就回滚,再add一次,成功了。于是就有了现在???
      

  6.   

    触发器这个我不熟,我也没建触发器阿。
    其实也就是一个简单的insert into sql被执行了,怎么还会有delete 操作。请大虾指点迷津
      

  7.   

    --在删除XSCKMX表中记录时自动回滚,也就是不允许删除
    ALTER TRIGGER [TR_XSCKMX_Delete] ON [dbo].[XSCKMX] 
    FOR DELETE
    AS
    begin rollbackend或者使用下面的触发器,表名一改就可以--在删除XSCKMX表中使用instead of触发器,也是不允许删除
    ALTER TRIGGER [TR_XSCKMX_Delete] ON [dbo].[XSCKMX] 
    instead of DELETE
    AS
    begin  print('不允许删除')
    end
      

  8.   

    插入不成功,可能也会有ID号得,所以也可能造成ID不连续的。
    可以看一下日志,生成ID号应该有日志记录的。
      

  9.   

    如果你设置了后台只增加,每次的步长为1,只要add数据肯定会增1,不会跳着增,除非删除过数据