資料來源
ROWLOCK 讀取或修改資料時使用資料列層級鎖定。這些鎖定會依適當情況被取得及釋放。
PAGLOCK 讀取或修改資料時使用頁面層級鎖定。這些鎖定會依適當情況被取得及釋放。
TABLOCK 讀取或修改資料時使用資料表鎖定。此鎖定會被保留到陳述式結束為止。
DBLOCK 讀取或修改資料時使用資料庫鎖定。此鎖定會被保留到陳述式結束為止。
LOCKMODES
UPDLOCK 在讀取資料表時使用更新鎖定,而非共用鎖定,並使用保留鎖定直到陳述式或交易結束為止。UPDLOCK 可讓您不會在讀取資料時封鎖其他讀取器,且稍後更新資料時,也可確信自從您上次讀取之後,資料並未發生變更。
XLOCK 在讀取資料表時使用獨佔鎖定,而非共用鎖定,並使用保留鎖定直到陳述式或交易結束為止。
持續期間
HOLDLOCK 使用保留鎖定將鎖定保留至交易完成為止,而不會在所需資料表、資料列或資料頁已不再需要時立即釋放鎖定。
NOLOCK 不會發出任何鎖定。這是 SELECT 作業的預設值。此鎖定不適用於 INSERT、UPDATE 及 DELETE 陳述式。
範例:
begin tran begin tran select * from test1 with (xlock) where t1 = 1 '鎖定t1=1的資料
rollback
begin tran begin tran select * from test1 with (tablock,xlock) '鎖定資料表Test1
rollback