Показать сообщение отдельно
Старый 07.10.2019, 13:33   #21  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от NitroJunkie Посмотреть сообщение
Но в READ COMMITED блокировка же не держится в рамках всей транзакции. Или предполагается что обновление остатков всегда идет ровно одним запросом? И сквозного использования данных в рамках одной транзакции предполагается нет?
В READ COMMITED SNAPSHOT блокировок вообще нет. т.е. в общем случае предполагается что если у вас 2 сессии меняют одно и тоже, то у вас что-то не в порядке с бизнес процессами и одна из сессий при попытке сохранения записи получит сообщение о ошибке - "Запись изменена другим пользователем, обновите форму".
Есть еще много частных случаев - например в случае остатков, они не меняются при обработке документа, вместо этого создается лог изменений и по событию окончания транзакции этот лог записывается в основную таблицу.
Вот еще несколько частных случаев - https://denistrunin.com/understanding-sql-blocking

Последний раз редактировалось trud; 07.10.2019 в 13:36.