October 1999
Figure 2   SQL Server Locking Hints

Hint
Description
PAGLOCK
Use page locks where a single table lock would usually be taken.
ROWLOCK
Use row-level locks rather than the coarser-grained page and table-level locks. (New with SQL Server 7.0.)
TABLOCK
Use a table lock rather than the finer-grained row or page-level locks. SQL Server holds this lock until the end of statement. However, if you also specify HOLDLOCK, the lock is held until the end of the transaction.
TABLOCKX
Use an exclusive lock on a table. This prevents others from reading or lock updating the table and is held until the end of the statement or transaction.


Figure 7   SQL Server Isolation Level Hints

Hint
Description
READUNCOMMITTED
Do not issue shared locks or allow dirty reads. Only applies to SELECT statements. (New with SQL Server 7.0.)
READCOMMITTED
Only read committed data and release read locks once a data item has been read. By default, SQL Server operates at this isolation level unless you connect from a transactional object. (New with SQL Server 7.0.)
REPEATABLEREAD
Only read committed data and hold read locks to the end of the transaction. However, don’t acquire table locks or indexes to prevent phantom inserts. (New with SQL Server 7.0.)
SERIALIZABLE
Only read committed data and hold read locks to the end of the transaction. Acquire whatever table locks or index locks are necessary to prevent phantom inserts. This is the isolation level when a connection has been established from a transactional object. (New with SQL Server 7.0.)
NOLOCK
Equivalent to READUNCOMMITTED.
HOLDLOCK
Equivalent to SERIALIZABLE.
READPAST
Can only be used in SELECT statements in transactions operating at READCOMMITTED. This hint tells SQL Server to skip over and ignore any record with a row-level lock. (New with SQL Server 7.0.)