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