sql >> Base de Datos >  >> RDS >> Sqlserver

La solicitud de ROLLBACK TRANSACTION no tiene BEGIN TRANSACTION correspondiente

El error que está recibiendo se debe a que está retrocediendo sin tener una transacción abierta (ya tiene ya comprometido o revertido). Considere limpiar la estructura de su proceso almacenado, intente ejecutar todo su proceso almacenado como una sola transacción y luego retroceda si ocurre un error. También puede probar si se requiere una reversión al verificar si una transacción está abierta:

BEGIN TRANSACTION;
BEGIN TRY

   --execute all your stored proc code here and then commit
   COMMIT;

END TRY
BEGIN CATCH

   --if an exception occurs execute your rollback, also test that you have had some successful transactions
   IF @@TRANCOUNT > 0 ROLLBACK;  

END CATCH