日期:2014-05-17 浏览次数:20416 次
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