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