现在我的语句如下:
 SELECT Max(convert(numeric,单据号)) 
 FROM 收发记录  WITH(XLOCK,PAGLOCK)
但是有个问题,就是当多人在同一时间内取值其中一个就不能取出,请问高手有何其它的妙招??

解决方案 »

  1.   

    加一个字段
    取之前在这个字段里面放一个随机数
    取最大值SELECT Max(convert(numeric,单据号)) 
    保存数据时用update ... where 字段=这个随机数
      

  2.   

    加一个字段
    取之前在这个字段里面放一个随机数(赋值之前看这个字段是否为空,非空则别人在用)
    取最大值SELECT Max(convert(numeric,单据号))(where 字段=这个随机数) 
    保存数据时用update tablename set 字段='',... where 字段=这个随机数
      

  3.   

    可以参考ORACLE中的Sequence对象的思路,写个取最大ID的方法。
      

  4.   

    取一下。存之前再判断一下。或者另外的sysparam表标记一下当前到多少了
      

  5.   

    用 标示 字段不可以吗
    返回 用@@IDENTITY