(目次: トランザクションのサンプル) ロスト アップデート (Lost Update, 失われた更新) とは、更新したはずのデータが失われてしまう現象のことです。 「後勝ち」と表現されることもあります。 わざと後勝ちルールを採用する業務もあると思いますが、頻繁なアクセスが見込まれる場合には適切な排他制御が必要になります。 今回は、ロスト アップデートの発生と SQL Server における解決方法について、実際のコードを示して説明します。 前提として、SQL Server におけるロック メカニズムやトランザクション分離レベルについての基礎知識が必要になります。 これらは SQL Server のロック管理 (@IT) で確認できます。 以下で示すサンプルでは同時実行制御のために自動トランザクション (TransactionScope クラス) を使用していますが、 手動トランザクション
![ロスト アップデートとその解決方法 その 1](https://cdn-ak-scissors.b.st-hatena.com/image/square/fdbbb43be330aa5724e1c3df7aa6f44cb3b4ae10/height=288;version=1;width=512/https%3A%2F%2Fsakapon.wordpress.com%2Fwp-content%2Fuploads%2F2011%2F07%2F20110711031151-2_thumb.png)