求这个怪异问题的解释,高人进来看看
有表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!