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 回答