Будет ли выбор вмешиваться DML
При использовании чистого чтения (чтение зафиксировано)... Будет ли мешать выбранному запросу другой запрос 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')
1 ответ
Уровень изоляции с фиксацией чтения использует общие блокировки на уровне строк, чтобы избежать чтения грязных данных. Однако, поскольку блокировка находится на уровне строк, другие строки могут измениться до завершения транзакции, что приведет к неповторимым чтениям или фантомным данным.
Дополнительные сведения см. В документации Microsoft по УСТАНОВЛЕНИЮ УРОВНЯ ИЗОЛЯЦИИ СДЕЛКИ и в этом блоге для хорошего примера.