SELECT 語句中
加鎖選項
的功能說明
SQL Server提供了強大而完備的鎖機制來幫助實現數據庫系統的並發性和高性能
用戶既能使用SQL Server的缺省設置也可以在select 語句中使用
加鎖選項
來實現預期的效果
本文介紹了SELECT語句中的各項
加鎖選項
以及相應的功能說明
功能說明
NOLOCK(不加鎖)
此選項被選中時
SQL Server 在讀取或修改數據時不加任何鎖
在這種情況下
用戶有可能讀取到未完成事務(Uncommited Transaction)或回滾(Roll Back)中的數據
即所謂的
髒數據
HOLDLOCK(保持鎖)
此選項被選中時
SQL Server 會將此共享鎖保持至整個事務結束
而不會在途中釋放
UPDLOCK(修改鎖)
此選項被選中時
SQL Server 在讀取數據時使用修改鎖來代替共享鎖
並將此鎖保持至整個事務或命令結束
使用此選項能夠保證多個進程能同時讀取數據但只有該進程能修改數據
TABLOCK(表鎖)
此選項被選中時
SQL Server 將在整個表上置共享鎖直至該命令結束
這個選項保證其他進程只能讀取而不能修改數據
PAGLOCK(頁鎖)
此選項為默認選項
當被選中時
SQL Server 使用共享頁鎖
TABLOCKX(排它表鎖)
此選項被選中時
SQL Server 將在整個表上置排它鎖直至該命令或事務結束
這將防止其他進程讀取或修改表中的數據
使用這些選項將使系統忽略原先在SET語句設定的事務隔離級別(Transaction Isolation Level)
請查閱SQL Server 聯機手冊獲取更多信息
From:http://tw.wingwit.com/Article/os/xtgl/201311/9272.html