SQLServer nolockを使ってテーブルをロックせずにSELECTする
始めに
SQLServer の SQL でテーブルをロックせずに SELECT を行う方法を紹介します。
ロックしてしまうと危険なテーブルに対して SELECT を行う際に nolock ヒントを使うと安全に行えます。
nolock を使った SQL
nolock の使い方は次のようになります。
select * from テーブル名 with ( nolock )
テーブル名の後ろにwith ( nolock )
をつけるだけでダーティリードになります。
更新中のテーブルに対しても、ロックが競合することなく SELECT できます。
注意事項
nolock をつけていても、Sch-M タイプのロックになってしまった場合は、他の SQL が待ちになります。