Будет ли выбор вмешиваться DML - PullRequest
1 голос
/ 24 ноября 2010

При использовании чистого чтения (чтение зафиксировано) ... Будет ли на запрос на выбор вмешиваться другой запрос DML (вставка, обновление, удаление)?Если да, можете ли вы предоставить некоторые случаи.Я использую SQL Server 2005.

Какова вероятность того, что приведенный ниже запрос приведет к неверным данным.В запросе не используются никакие объединения, он просто извлекает данные из одной таблицы на основе некоторого creteria.

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 Ответ

1 голос
/ 24 ноября 2010

Чтение зафиксированного уровня изоляции использует общие блокировки на уровне строк, чтобы избежать чтения грязных данных. Однако, поскольку блокировка находится на уровне строк, другие строки могут измениться до завершения транзакции, что приведет к неповторимым чтениям или фантомным данным.

См. Документацию Microsoft по УСТАНОВИТЬ УРОВЕНЬ ИЗОЛЯЦИИ СДЕЛКИ для получения дополнительной информации и в этом сообщении для хорошего примера.

...