SQLServer nolockを使ってテーブルをロックせずにSELECTする

2019.4.30

始めに

SQLServerのSQLでテーブルをロックせずにSELECTを行う方法を紹介します。 ロックしてしまうと危険なテーブルに対してSELECTを行う際にnolockヒントを使うと安全に行えます。

nolockを使ったSQL

nolockの使い方は次のようになります。

select * from テーブル名 with ( nolock )

テーブル名の後ろにwith ( nolock )をつけるだけでダーティリードになります。 更新中のテーブルに対しても、ロックが競合することなくSELECTできます。

注意事項

nolockをつけていても、Sch-Mタイプのロックになってしまった場合は、他のSQLが待ちになります。

Related.