sql >> Databasteknik >  >> RDS >> Sqlserver

ROLLBACK TRANSACTION-begäran har ingen motsvarande BEGIN TRANSACTION

Felet du får beror på att du återställer utan att ha en öppen transaktion (du har antingen redan engagerad eller tillbakadragen). Överväg att rensa upp strukturen för din lagrade proc, försök att köra hela din lagrade proc som en transaktion och återställ sedan om ett fel uppstår. Du kan också testa om en återställning krävs genom att kontrollera om en transaktion är öppen:

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


  1. Mysql summa av poster per månad för de senaste 12 månaderna

  2. Finns det en namnkonvention för MySQL?

  3. Om användbarheten av uttrycksindex

  4. Uppdatera antal kolumn från data i en annan tabell