sql >> Database teknologi >  >> RDS >> Sqlserver

ROLLBACK TRANSACTION-anmodning har ingen tilsvarende BEGIN TRANSACTION

Den fejl, du får, skyldes, at du ruller tilbage uden at have en åben transaktion (du har enten allerede forpligtet eller rullet tilbage). Overvej at rydde op i strukturen af ​​din lagrede proc, prøv at udføre hele din lagrede proc som én transaktion, og fortsæt derefter, hvis der opstår en fejl. Du kan også teste om en tilbagerulning er påkrævet ved at tjekke om en transaktion er åben:

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. oprettelse af en pandas-dataramme fra en databaseforespørgsel, der bruger bindevariabler

  2. SQL-forespørgsel på dato, når typen er VARCHAR

  3. Forårsaget af:java.time.DateTimeException:Konflikt fundet:Felt DayOfWeek 6 adskiller sig fra DayOfWeek 2 afledt fra 2016-01-30

  4. Afbrudte forbindelser ved brug af node.js/mysql connectionPool