Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

A solicitação ROLLBACK TRANSACTION não tem BEGIN TRANSACTION correspondente


O erro que você está recebendo é porque você está revertendo sem ter uma transação aberta (você tem confirmada ou revertida). Considere limpar a estrutura do seu proc armazenado, tente executar todo o seu proc armazenado como uma transação e, em seguida, reverter se ocorrer um erro. Você também pode testar se uma reversão é necessária verificando se uma transação está aberta:
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