Если я просто переношу свой запрос с помощью:
BEGIN TRANSACTION
COMMIT TRANSACTION
Если в этом что-то не получится, будет ли он автоматически откатываться?
От взгляда на другой код они, похоже, проверяют наличие ошибки, если есть ошибка, тогда они выполняют оператор GOTO, который затем вызывает ROLLBACK TRANSACTION
Но это похоже на выделение работы, чтобы проверить IF (@@ERROR < > 0) после каждой вставки/обновления.