(1) HOLDLOCK: 在該表上保持共享鎖,直到整個事務結束,而不是在語句執行完當即釋放所添加的鎖。 事務
(2) NOLOCK:不添加共享鎖和排它鎖,當這個選項生效後,可能讀到未提交讀的數據或「髒數據」,這個選項僅僅應用於SELECT語句。 date
(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的做用是容許用戶先讀取數據(並且不阻塞其餘用戶讀數據),而且保證在後來再更新數據時,這一段時間內這些數據沒有被其餘用戶修改。