日期:2014-05-17  浏览次数:20437 次

流水号 重复问题
一个表 T1 用来存放流水号
sType    sNo
zc       99
sy       10

取流水号时 SELECT sNo+1 from t1 where sType='zc' 
      然后 update t1 set sNo=sNo+1 where  sType='zc'

但是如果多用户并发时,取出的流水号就有可能重复,请问该如何处理?

------解决方案--------------------
这流水号设计得够烂的,都不用插入语句的.把这两句放一起执行试一试
string sql=@"
update t1 set sno=sno+1 where stype='zc'
select sno from stype='zc'
";

------解决方案--------------------

declare @tb table (流水号 int)
update t1 set sNo=sNo+1 output inserted.sNo into @tb where  sType='zc'
select 流水号 from @tb

------解决方案--------------------
可以参考一下我的文章:http://blog.csdn.net/dba_huangzj/article/details/7685162