1

クリーン読み取り (コミットされた読み取り) を使用する場合... 選択クエリは別の DML (挿入、更新、削除) クエリによって干渉されますか? はいの場合、いくつかのケースを提供できますか。SQL Server 2005 を使用しています。

以下のクエリが誤ったデータを生成する可能性は何ですか。クエリは結合を使用せず、いくつかの基準に基づいて単一のテーブルからデータをフェッチするだけです。

Select PracticeCode, AccountNo, ProcCd, Modifier , ChargeDos, Paid as Amt, CreatedDate,
       case When Paid > 0 then 'P' 
              When Paid = 0 and WrittenOff = DueAmt then 'A'
              Else 'O' 
       End as Status
     From Trn_Postings
     Where CreatedDate between @StartDateTime and @EndDateTime
                  and ManualOverride not in ('F','S','X','G','O')
4

1 に答える 1

1

読み取りコミット分離レベルは、行レベルで共有ロックを使用して、ダーティ データの読み取りを回避します。ただし、ロックは行レベルで行われるため、トランザクションが完了する前に他の行が変更される可能性があり、その結果、反復不可能な読み取りまたはファントム データが発生します。

詳細については、 SET TRANSACTION ISOLATION LEVELに関する Microsoft のドキュメントを参照してください。良い例については、このブログ投稿を参照してください。

于 2010-11-24T14:43:02.943 に答える