我现在碰到了这样一个问题,我在将数据登记入数据库时,要生成一个编码,他的格式为 年+月+日+000~999在只有一台机器工作时,生成唯一编码正确,可是在多台机器同时工作吧,就出错了,请问高手,这个唯一编码要如何实现啊,就是在有多台机器同时将数据存在数据时,要如何生成这个唯一编码啊
这个编码由系统根据当天的记录数自动生成,是主键,请高手们快快帮忙啊

解决方案 »

  1.   

    写一个存储过程,专门生成id,可保证每一个连接获取唯一id
    (建一个表,一个自动id字段,一个毫无意义的字段)declare @userid  float
    set @userid=0
    set nocount on
    begin transaction
    insert username (username) VALUES ('随便')
    set @userid=isnull(@@identity,0)
    commit
    变量@userid就是你需要的id
      

  2.   

    on error goto again   ''我假设你的编码为4位年+2位月+2位日,如果你月和日
       strsql="select top 1 你的编码  from 你的表 order by substring(你的编码,9,3)"
       
       rs.open strsql,cn
       if not rs.eof then     strLastCode=right(rs(0),3)+1''取得你的新编码
       ''更新我不写了
    updateagain:
        ''你的更新代码 
        exit function
    again:
       strlastcode=strlastcode+1
       resume 
    end function