如何给行加了锁后,使其他的语句连查询都不行
我知道加了rowlock后,其他的语句不能update操作。代码如下
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
begin tran
select * from dbo.TypesID with (ROWLOCK) where Type='Order'
waitfor delay '00:00:30'
commit tran
update dbo.TypesID set IDValue=30 where Type='Order' --则要等待30秒
--你这样写没必要,而且我上面说了,查询出来的数量是不准的
--会话1、2可能同时查询出同一个数量
SET @ID = (SELECT IDValue + 1
FROM dbo.TypesID
WHERE [Type]=@Type)
UPDATE dbo.TypesID
SET IDValue = @ID
WHERE [Type]=@Type
--改成
UPDATE dbo.TypesID
SET IDValue = IDValue+1
WHERE [Type]=@Type