ほとんどの場合、共有ロックはに発行されます。TableBこれは、を実行した場合と同じタイプのロックですSELECT。ただし、取得するロックの特定のタイプ、およびロックの期間は個々のシナリオによって異なるため、次の検証を実行して、質問に対する正確な回答を取得する必要があります。
まず、SET TRANSACTION ISOLATION LEVEL REPEATABLE READ。これにより、トランザクションが完了するまで共有ロックが保持されます。これは、読み取り中の読み取り中にのみ保持されるのではありませんREAD COMMITTED。
後でどのロックが発行されたかを調べることができるように、分離レベルを上げています...しかし、このため、本番システムでこのテストを実行することはおそらく望ましくありません。
次に、BEGIN TRANSACTION。
次に、問題のDELETEコマンドを発行します。
ここで、を確認しsys.dm_tran_locksます。SELECTこの回答では、@MartinSmithによって提供されたステートメントを使用することを強くお勧めします。
最後に、COMMITまたはROLLBACKトランザクションを閉じてロックを解除します。
SELECT使用の結果は、sys.dm_tran_locks取得されたロックのタイプ、およびそれらが取得されたオブジェクトの詳細を示します。