比如FK2009072301 FK2009072302
这个生成没有问题,如何解决并发的问题

解决方案 »

  1.   

    就是点个按钮获取一个id号,这个id号,数据没有提交,别人也点获取,序号不能重复
      

  2.   

    --初始化编号表
    insert dbo.bh_max
    select 'JHG','JHG',0,8,'采购开票单'
    union all select 'JHA','JHA',0,8,'采购入库单'
    union all select 'XSG','XSG',0,8,'销售开票单'
    union all select 'XSA','XSA',0,8,'销售出库单'
    go
    -- 获取新编号的存储过程
    alter proc dbo.p_nextbh
      @name nvarchar(20),
      @bh nvarchar(20) output
    as
    begin tran
      update bh_max with(rowlock) 
      set @bh=head+right(power(10,bhlen)+recnum+1,bhlen),
          recnum=recnum+1
       where name=@namecommit tran
    go
    declare @bh nvarchar(20)
    exec dbo.p_nextbh @name='XSA',@bh=@bh output
    print @bh
    select * from bh_max