我試圖在SQL Server Management Studio中執行以下兩個查詢(在單獨的查詢窗口中)。我按照我在這裏輸入的順序運行它們。閱讀提交與可重複閱讀示例
當隔離級別設置爲READ COMMITTED
時,它們執行正常,但當它設置爲REPEATABLE READS
時,事務處於未鎖定狀態。
你能幫我理解這裏死鎖嗎?
第一:
begin tran
declare @a int, @b int
set @a = (select col1 from Test where id = 1)
set @b = (select col1 from Test where id = 2)
waitfor delay '00:00:10'
update Test set col1 = @a + @b where id = 1
update Test set col1 = @a - @b where id = 2
commit
二:
begin tran
update Test set col1 = -1 where id = 1
commit
UPD答案是laready給出,但如下因素的建議,我將僵局圖
你有沒有嘗試在探查器中創建死鎖圖? – SQLChao