Member 12896926 Ответов: 1

Как решить проблемы фиксации и отката SQL trasactions, если T2 зафиксирован, а затем T1 откатывается ?


1. Начните Транзакцию T1

2. Начните Транзакцию T2

3. присвоить значение 10 для столбца "стоимость" на Т1. так, стоимость=10

4. Обновление стоимости на 20 по Т2. так, стоимость=20

5. Зафиксируйте T2

6. откат T1 ?? здесь себестоимость составляет 20 только не 10 как решить этот вопрос??????

Что я уже пробовал:

не пробовал ничего потому что у меня нет идеи решить эту проблему

1 Ответов

Рейтинг:
2

OriginalGriff

Посмотреть на это: Вложенные Транзакции[^]

Цитата:
Фиксация внутренних транзакций игнорируется ядром базы данных SQL Server. Транзакция либо фиксируется, либо откатывается в зависимости от действия, предпринятого в конце самой внешней транзакции. Если внешняя транзакция зафиксирована, то фиксируются и внутренние вложенные транзакции. Если внешняя транзакция откатывается, то все внутренние транзакции также откатываются, независимо от того, были ли внутренние транзакции зафиксированы индивидуально.


Вам нужно вручную проверить количество транзакций и вести себя соответствующим образом: Обработка исключений и вложенные транзакции[^] должно помочь.