Если у меня есть параллельные транзакции, использующие уровень изоляции для фиксации чтения и тело транзакции, будут выглядеть следующим образом:
DECLARE @value..
SELECT @value = balance
FROM MyTable
WHERE Account = 1
UPDATE MyTable
SET balance = @value+@pAmount
WHERE Account = 1 AND Balance = @value
IF @@COUNT == 0
THROW 'another transaction changed'
Когда UPDATE WHERE читает столбец Баланс, гарантированно ли он прочитал зафиксированный или считал грязнымнаписать еще одну открытую транзакцию?Другими словами, могу ли я обнаружить потерянное обновление, используя READ COMMITTED и проверив, оказало ли мое обновление какое-либо влияние или нет.