У меня есть хранимая процедура, которая содержит BEGIN TRANSACTION
и COMMIT TRANSACTION
. Внутри транзакции выбирается запрос WITH(XLOCK, ROWLOCK)
.Требуется транзакция SQL Server 2008, требуется возврат?
Сделка может потенциально потерпеть неудачу из-за некоторых вычислений, которые вызывают ошибку арифметического переполнения, если поставляются значения вне границ. Эта ошибка возникла бы перед любыми операциями вставки/обновления.
Вопрос в том, должен ли я заключить сделку в TRY/CATCH и откате или это действительно не требуется, и все блокировки будут выпущены автоматически, если транзакция завершится с ошибкой? Меня беспокоит только то, что SQL не выпустит все блокировки транзакции в случае сбоя транзакции.
Спасибо,
Том