トランザクション内のロック動作を指定する。
主なオプションは以下の通り。
・READ UNCOMMITTED
他のトランザクションで変更されたが、まだコミットされていない行を読み取れる。
読み取った値は他のトランザクションで変更された値となる(ダーティリード)
・READ COMMITTED
他のトランザクションで変更されたが、まだコミットされていないデータを読み取れない。(ダーティリード防止)
SQL Serverでデフォルトの値
・REPEATABLE READ
他のトランザクションで変更されたが、まだコミットされていないデータを読み取れない。(ダーティリード防止)
また、このトランザクション内で発行されたSELECTは共有ロックとなり、他のトランザクションから更新できない
・SNAPSHOT
トランザクションの各ステートメントで、トランザクション全体で一貫性のあるデータを読み取るようにする。
このオプションを指定するにはALLOW_SNAPSHOT_ISOLATION をONにする必要がある。
・SERIALIZABLE
さらに細かく指定するためのオプション。
使用例
set transaction isolation level READ COMMITTED select * From customer
詳しくはこちら↓
http://msdn.microsoft.com/ja-jp/library/ms173763.aspx
動作確認環境:SQL SERVER 2008 Express Edition