求这个怪异问题的解释,高人进来看看
有表LastID
表中有字段 LastID(int) Tbname(varchar)
我有一个函数去执行这一个语句.
Update LastID Set LastID=LastID+1 Where Tbname='WorkGroup' ;Select LastID From LastID WITH (TABLOCKX) Where Tbname='WorkGroup'
按理说,每执行一次LastID都会加1
但是,居然重复了.概率非常小,两年了,出现了一次.
[解决办法]
并发了?
[解决办法]
Update LastID Set LastID=LastID+1 Where Tbname='WorkGroup'
重复是什么意思?貌似你这个是'WorkGroup'的全部+1的。
[解决办法]
每次都+1,你是如何看出来重复的呢?
[解决办法]
declare @lastid int
Update LastID Set LastID=LastID+1 , @lastid = LastID+1 Where Tbname='WorkGroup' ;
select @lastid ;
我想这样应当可行
[解决办法]
加个UNIQUE不就可以了?
[解决办法]
update要加个排它锁吧。
[解决办法]
如需要阅读该回复,请登录或注册CSDN!
如需要阅读该回复,请登录或注册CSDN!