在程序中要生成流水号,即编号,比如:
第一个记录:1,第二个记录:2。
通常有如下方法:
1)select max(编号)
2)写一个表保存尾编号每次编号时先读尾编号,加一,然后写回去不知高手们还有没有有其他方法,要求用时最短,这样在多终端协同操作时不容易出现重号。大家说说您一般是怎么处理的,谢谢。

解决方案 »

  1.   

    在数据库中弄一个ID字段,设成自增量为1的自动编号就OK了
      

  2.   

    access自动编号,sql server也一样,oracle新建序列。
      

  3.   

    在数据库中建立一个表为编码表,这里表里存放你的编码规则,其中一个字段存放序号,每次获得编码后对其进行累加操作,这样每次都可以通过这个序号组合成你的编码,这个序号类似于oracle里的序列
      

  4.   

    你用的什么DB呀,,
    一般都用nextseq取值的..
      

  5.   

    如果你插入了100条记录,然后删除了后99条
    结果你取出来的max(ID)=1
    结果,实际上,你的实现根本就不是自动编号方式
      

  6.   

    在ACCESS中用自动编号
    SQLSERVER中
    用Indentity标识,例如CREATE TABLE mytest(id smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, 
    name  varchar(50) )
    然后你用
    insert mytest(name) values('a')
    insert mytest(name) values('b')
    select * from mytest
      

  7.   

    用hongqi162说的方法比较好,性能和功能都能达到要求,不过要控制一下读和写编码表的时机,防止多用户环境下的重码问题。另外事务也需要很好的处理,用来控制跳号。
      

  8.   

    如果是自动序号:
    Access 有自动编号
    SQL Server 可以设置整数类型 +识别种子