回到目錄
對于高并發的場合下,使用UPDLOCK可以有效的控制并發更新的問題,即當一個線程在進行with(UPDLOCK)并進行update時,另一個線程將被阻塞,它會等第一個線程更新結束后,才可以進行它里面的操作,使用UPDLOCK有效的避免了并發更新而產生的數據錯誤的問題,如累加操作,第二個線程需要等第一個線程累加結束后,才能進行下一步的累加動作,這是我們可以接受的。
測試代碼如下
BEGIN TRANSELECT *FROM WebManageUsers WITH ( UPDLOCK )WHERE LoginName = 'zzl'WAITFOR DELAY '00:00:10'UPDATE WebManageUserssET RealName = 'zzlreal11'WHERE LoginName = 'zzl'COMMIT TRAN
代碼運行后,再打開一個SQL客戶端,進行下面代碼的修改
BEGIN TRANSELECT *FROM WebManageUsers WITH ( UPDLOCK )WHERE LoginName = 'zzl'WAITFOR DELAY '00:00:10'UPDATE WebManageUsersSET RealName = 'zzlreal22'WHERE LoginName = 'zzl'COMMIT TRAN
回到目錄
新聞熱點
疑難解答