流水号 重复问题

骑牛上铂金 2014-01-11 10:07:34
一个表 T1 用来存放流水号
sType sNo
zc 99
sy 10

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

但是如果多用户并发时,取出的流水号就有可能重复,请问该如何处理?
...全文
125 点赞 收藏 5
写回复
5 条回复
發糞塗牆 2014年01月13日
回复 点赞
Persistence_x 2014年01月13日
放一个事务中,可以使用行级锁
回复 点赞
tangxu12 2014年01月12日
max最大值+1
回复 点赞
lzw_0736 2014年01月11日

declare @tb table (流水号 int)
update t1 set sNo=sNo+1 output inserted.sNo into @tb where  sType='zc'
select 流水号 from @tb
回复 点赞
tcmakebest 2014年01月11日
这流水号设计得够烂的,都不用插入语句的.把这两句放一起执行试一试 string sql=@" update t1 set sno=sno+1 where stype='zc' select sno from stype='zc' ";
回复 点赞
发动态
发帖子
应用实例
创建于2007-09-28

1.1w+

社区成员

6.8w+

社区内容

MS-SQL Server 应用实例
社区公告
暂无公告