(1) HOLDLOCK: ステートメントの実行直後に追加されたロックを解放するのではなく、トランザクション全体が終了するまでテーブルの共有ロックを保持します。
(2) NOLOCK: 共有ロックと排他ロックを追加しません。このオプションが有効になると、コミットされていない読み取りデータまたは「ダーティ データ」が読み取られる可能性があります。このオプションは SELECT ステートメントにのみ適用されます。
(3) PAGLOCK: ページ ロックを追加するように指定します (それ以外の場合は、通常テーブル ロックが追加される可能性があります)。
(4) READCOMMITTED は、読み取りコミット分離レベルで実行されているトランザクションと同じロック セマンティクスでスキャンを実行します。デフォルトでは、SQL Server 2000 はこの分離レベルで動作します。
(5) READPAST: ロックされたデータ行をスキップする このオプションにより、トランザクションは、他のトランザクションがロックを解放するまでブロックするのではなく、他のトランザクションによってロックされているデータ行をスキップします。 READ COMMITTED 分離レベルでのトランザクション操作中。
(6) READUNCOMMITTED: NOLOCK と同等。
(7) REPEATABLEREAD: トランザクションを反復読み取り分離レベルに設定します。
(8) ROWLOCK: 粒度の粗いページレベルのロックやテーブルレベルのロックの代わりに、行レベルのロックを使用します。
(9) SERIALIZABLE: シリアル化可能な読み取り分離レベルで実行されているトランザクションと同じロック セマンティクスでスキャンを実行します。ホールドロックと同等。
(10) TABLOCK: 行レベルまたはページレベルのロックの代わりにテーブルレベルのロックの使用を指定します。HOLDLOCK も指定されている場合、ロックはこれまで維持されます。トランザクションを終了します。
(11) TABLOCKX: テーブルに対する排他ロックの使用を指定します。このロックにより、ステートメントまたはトランザクション全体が終了するまで、他のトランザクションがこのテーブル内のデータを読み取ったり更新したりすることができなくなります。
(12) UPDLOCK: テーブル内のデータを読み取るときに、共有ロックを設定する代わりに更新ロック (更新ロック) を設定することを指定します。ロックは、このステートメントまたはトランザクション全体が終了するまで維持されます。これは、ユーザーが最初にデータを読み取ることを許可し (他のユーザーによるデータの読み取りをブロックしません)、後でデータが更新されるときに、この期間中に他のユーザーによってデータが変更されていないことを保証します。