2 itcaimeng itcaimeng 于 2016.03.21 18:04 提问

sql server 用这段语句,3个人一起点就容易死锁,有解决过的没有,如果解决的话,加分给你 5C

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRAN

DECLARE @UserCode VARCHAR(20)
SELECT TOP 1 @UserCode=usercode FROM dbo.tb_refUserCode With(RowLock,UpdLock) WHERE usestatus=0 --WHERE UserCode='19642428'

UPDATE dbo.tb_refUserCode SET UseStatus=1 WHERE UserCode=@UserCode

SELECT @UserCode
--waitfor delay '00:00:01'
COMMIT TRAN

1个回答

gainewsoft
gainewsoft   2016.03.21 18:31

改成 这种的试一下,UPDATE dbo.tb_refUserCode SET UseStatus=1 WHERE UserCode=(SELECT TOP 1 usercode FROM dbo.tb_refUserCode With(RowLock,UpdLock) WHERE usestatus=0)

itcaimeng
itcaimeng 我要把得到的usercode 返回回去呀,如果直接执行我得不到usercode了
一年多之前 回复
gainewsoft
gainewsoft 两个语句合到一起
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!