多个客户端操作可能会同时新增一个用户编号,目前的编号生成是取序号的最大+1 
select 字段=max(字段) from 信息表 
比如取得的最大序号为000001 
则新增编号为000002之后再填写其他数据项 最后再提交
这样就可能会出现最后提交时提交的用户编号都为同一个,请问该如何解决? 

解决方案 »

  1.   

    http://shujuku.zjwchc.com/pages/jc/chap10-3.htm
    看一下这个
      

  2.   

    谢谢各位的回复 
    我的难点是生成序列号 SQL不支持数组 要分离varchar 
    Google了多次
    终于解决了
    哈哈 结贴了
      

  3.   

    谢谢 我的编号格式是这样的 XXX000YYY 如:LHY000123 所以不能用自增长 我现在是写了个存储过程 在过程中启用事务 用户编号在过程中生成 谢谢你的意见
      

  4.   

    如果是SQL 2005及以上版本,直接用output子句即可,无连线并非修改的问题.create table x (t int)insert into x(t) select 1--连线1
    update x set t=t+1 output inserted.tt
    -----------
    2   --> 新增的是2
     --连线2
    update x set t=t+1 output inserted.t
     
    t
    -----------
    3   --> 新增的是3