identity肯定是找一个最小的可用编号, 有两种方法解决这个问题:
1) 不用identity, 自己计算最大的再加1就是下一个编号.
2) 删除纪录的时候不用Delete, 而是给纪录增加一个删除标志字段并设置为删除. 因为不是实际的删除操作, 所以, 号码也会是连续的...
祝你好运...

解决方案 »

  1.   

    indentity列是最后一列的编号开始的,如自动编号到1234时,即使此记录删除后下一条记录的编号是1235,此类列是不会回收已删除的编号。
      

  2.   

    Michael的回答确实如此,我手工试验过,indentity只会递增,即使将前面的记录删除,
    但是,我有两个系统都发生过新增的记录的编号未顺序递增?问题依然存在,征求高见。
      

  3.   

    依然是这个问题,事实上SQL Server中的indentity列每发生一次Insert语句,Indentity就要消耗一个编号,不知所说的新增记录的编号未顺序递增,是不是由此产生?
    若要真正的顺序号,最好自己编写一序号产生器来完成。
      

  4.   

    使用Indentity属性的表,必须是只增加不删除的表否则它的编号不仅不连贯并且会严重跳号,最好的方法是自己编程实现本功能!!
      

  5.   

    很对不起,最近出现的问题,未能给你回信,希望见谅。
    关于indentity的编号,我是在实际使用中发现的,我还没有见过啥书上提过此问题
      

  6.   

    SQL中的identity属性是为了保持标识的唯一性而不是顺序性