2010-11-24 11 views
1

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

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

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') 

答えて

1

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

詳細については、SET TRANSACTION ISOLATION LEVELのMicrosoftドキュメントを参照してください。また、良い例はthis blog postを参照してください。

関連する問題