SqlServer的更新鎖 UPDLOCK

2021-04-20 14:13:26 字數 634 閱讀 4839

updlock.updlock 的優點是允許您讀取資料(不阻塞其它事務)並在以後更新資料,同時確保自從上次讀取資料後資料沒有被更改。當我們用updlock來讀取記錄時可以對取到的記錄加上更新鎖,從而加上鎖的記錄在其它的執行緒中是不能更改的只能等本執行緒的事務結束後才能更改,我如下示例:begin transaction --開始乙個事務select qty from mytable with (updlock) where id in (1,2,3)

我做了乙個測試:

在乙個查詢裡寫

begin tran

select * from address with (updlock) where [name]='z'

waitfor delay '00:00:10'

update address set [name]='zz'

commit tran

在另乙個查詢裡:

如果同樣要加更新鎖,則會阻塞當前查詢,直到其它連線釋放更新鎖.

如果不加更新鎖則直接可以讀取更新鎖的記錄.

這就說明,有時候我需要控制某條記錄在我讀取後就不許再進行更新,那麼我就可以將所有要處理當前記錄的查詢都加上更新鎖,以防止查詢後被其它事務修改.將事務的影響降低到最小(我以前的做法是將整個表鎖定,這種做法嚴重影響了效能.)

SqlServer的更新鎖 UPDLOCK

updlock 讀取表時使用更新鎖,而不使用共享鎖,並將鎖一直保留到語句或事務的結束。updlock 的優點是允許您讀取資料 不阻塞其它事務 並在以後更新資料,同時確保自從上次讀取資料後資料沒有被更改。這是sqlserver2000中對更新鎖的說明.當我們用updlock來讀取記錄時可以對取到的記錄...

SqlServer的更新鎖(UPDLOCK)

updlock 讀取表時使用更新鎖,而不使用共享鎖,並將鎖一直保留到語句或事務的結束。updlock 的優點是允許您讀取資料 不阻塞其它事務 並在以後更新資料,同時確保自從上次讀取資料後資料沒有被更改。這是sqlserver2000中對更新鎖的說明.當我們用updlock來讀取記錄時可以對取到的記錄...

SqlServer中的更新鎖 UPDLOCK

updlock.updlock 的優點是允許您讀取資料 不阻塞其它事務 並在以後更新資料,同時確保自從上次讀取資料後資料沒有被更改。當我們用updlock來讀取記錄時可以對取到的記錄加上更新鎖,從而加上鎖的記錄在其它的執行緒中是不能更改的只能等本執行緒的事務結束後才能更改.示例 測試 在另乙個查詢裡...