Tengo un procedimiento almacenado que tiene una instrucción BEGIN TRANSACTION
y COMMIT TRANSACTION
. Dentro de la transacción hay una consulta de selección WITH(XLOCK, ROWLOCK)
.Transacción de SQL Server 2008, ¿se requiere reversión?
La transacción puede fallar debido a algunos cálculos que causan un error de desbordamiento aritmético si se proporcionan valores fuera de límites. Este error ocurriría antes de cualquier instrucción de inserción/actualización.
Mi pregunta es, ¿debo envolver la transacción en un TRY/CATCH y revertir o esto no es realmente necesario y todos los bloqueos se liberarían automáticamente si la transacción falla? Mi única preocupación aquí es que SQL no liberaría todos los bloqueos de la transacción en caso de que la transacción falle.
Gracias,
Tom