Изменение @@TRANCOUNT при откате
Оператор BEGIN TRAN увеличивает число транзакций на 1. Оператор ROLLBACK очищает значение переменной @@TRANCOUNT , т. к. все активные транзакции отменены.
Точки сохранения
Концепция точек сохранения привносит в транзакции дополнительный уровень гранулярности. Позволяет определить в транзакции именованную метку (как правило, после выполнения ключевой инструкции).
Если после установки точки сохранения произойдет какой-либо сбой, то откат будет выполнен не до начала транзакции, а до этой точки сохранения.
Явные инструкции COMMIT (равно как и неявные, выполняемые до и после инструкции DDL) освобождают память от информации о точках сохранения.
Использование точки сохранения (1)
Использование точки сохранения (2)
Проблема потерянных обновлений (Lost Update)
Если пользователи параллельно обновляют одни и те же данные, то запомнится обновление, проведенное последним. Остальные будут потеряны.