Транзакция SQL Server 2008, требуется откат?

У меня есть хранимая процедура с инструкциями BEGIN TRANSACTION и COMMIT TRANSACTION . Внутри транзакции есть запрос выбора WITH (XLOCK, ROWLOCK) .

Транзакция потенциально может потерпеть неудачу из-за некоторых вычислений, которые вызывают ошибку арифметического переполнения, если предоставлены значения, выходящие за границы. Эта ошибка может произойти перед любыми операторами вставки / обновления.

У меня вопрос: следует ли заключить транзакцию в TRY / CATCH и откат или это действительно не требуется, и все блокировки будут автоматически сняты, если транзакция завершится неудачно? Меня беспокоит только то, что SQL не снимет все блокировки транзакции в случае сбоя транзакции.

Спасибо,

Том

7
задан marc_s 22 October 2010 в 14:11
поделиться