В последнее время на собеседованиях встречаю вопросы, связанные со вложенными транзакциями в MS SQL.
BEGIN TRANSACTION
BEGIN TRANSACTION
-- Что-то делаем
COMMIT
ROLLBACK
Вопрос задают один и тот же, будет ли сохранено то, что во внутренней транзакции было подтверждено при коммите. Понятно логически, что не будет.
Но у меня появился вопрос - зачем в принципе нужна такая вложенность, где это может быть использовано?
Единственное, что идёт на ум - для отката при возникновении исключения (при XACT_ABORT = ON).