SNAPSHOT 分離レベルを使用するトランザクションによって行が変更された場合、同じ行に対する (別のトランザクションによる) 同時更新により、SNAPSHOT トランザクションは競合で失敗します。
読み取られただけの行 (必ずしも変更されていない) で同じ動作を発生させる方法はありますか?
例として、次のシーケンスが発生した場合に TX1 が競合して失敗するようにします。
- TX1 は SNAPSHOT 分離レベルで開始します
- TX1 は行 1 を読み取ります
- TX2 が行 1 を変更してコミットする
- TX1 がコミットし、行 1 が読み取られた後に変更されているため、競合で失敗する