С уровнями изоляции транзакций SQL Server вы можете избежать некоторых нежелательных проблем concurrency, таких как грязные чтения и т.д.
Тот, кого мне сейчас интересует, - это потерянные обновления - факт, что две транзакции могут перезаписывать друг друга без каких-либо замечаний. Я вижу и слышу противоречивые утверждения относительно того, какой уровень изоляции как минимум я должен выбрать, чтобы избежать этого.
Кален Делани в своей книге "Внутренние книги SQL Server" говорит (Глава 10 - Транзакции и concurrency - Страница 592):
В Read Uncommitted изоляции, все описанные выше поведения, кроме потерянных обновлений, возможны.
С другой стороны, независимый тренер SQL Server, предлагающий нам класс, сказал нам, что нам нужно хотя бы "Повторяемое чтение", чтобы избежать потерянных обновлений.
Итак, кто прав? И почему?