(1) HOLDLOCK: 在該表上保持共享鎖,直到整個事務結束,而不是在語句執行完立即釋放所添加的鎖。
(2) NOLOCK:不增加共享鎖和排它鎖,當這個選項生效後,可能讀到未提交讀取的資料或“髒資料”,這個選項僅應用於SELECT語句。
(3) PAGLOCK:指定新增頁鎖定(否則通常可能會新增表鎖)。
(4) READCOMMITTED用與執行在提交讀取隔離等級的事務相同的鎖定語意執行掃描。預設情況下,SQL Server 2000 在此隔離等級上操作。
(5) READPAST: 跳過已經加鎖的資料行,這個選項將使事務讀取資料時跳過那些已經被其他事務鎖定的資料行,而不是阻塞直到其他事務釋放鎖,READPAST僅應用於READ COMMITTED隔離性等級下交易操作中的SELECT語句操作。
(6) READUNCOMMITTED:等同於NOLOCK。
(7) REPEATABLEREAD:將交易設定為可重複讀取隔離性等級。
(8) ROWLOCK:使用行級鎖,而不使用粒度較粗的頁級鎖和表級鎖。
(9) SERIALIZABLE:使用與運行在可串行讀取隔離級別的事務相同的鎖定語義執行掃描。等同於 HOLDLOCK。
(10) TABLOCK:指定使用表級鎖,而不是使用行級或頁級的鎖,SQL Server在該語句執行完後釋放這個鎖,而如果同時指定了HOLDLOCK,該鎖一直保持到這個事務結束。
(11) TABLOCKX:指定在表上使用排它鎖,這個鎖可以阻止其他事務讀取或更新這個表的數據,直到這個語句或整個事務結束。
(12) UPDLOCK :指定在讀表中資料時設定更新鎖(update lock)而不是設定共享鎖,該鎖一直保持到這個語句或整個事務結束,使用UPDLOCK的作用是允許用戶先讀取資料(而且不阻塞其他用戶讀取資料),並且保證在後來再更新資料時,這段時間這些資料並沒有被其他使用者修改。