Поскольку только результаты самой внешней транзакции, видимой извне, вложенные транзакции как таковые не имеют смысла, и только в основных системах их поддерживает только SQL Server
.
В SQL Server
промежуточный откат возвращается к началу промежуточной транзакции, промежуточный коммит ничего не делает.
Внешний откат выполняет откат всей внешней транзакции (даже если между ними были зафиксированы коммиты), самый внешний коммит фиксирует всю внешнюю транзакцию.
В других системах есть только один уровень транзакций с возможным SAVEPOINTS
между ними. Вы можете выполнить откат к каждой из предыдущих точек сохранения (указав их имя), но при выдаче COMMIT
или ROLLBACK
без точки сохранения всегда выполняется фиксация или откат самой внешней транзакции.