sql >> Databáze >  >> RDS >> Sqlserver

Požadavek ROLLBACK TRANSACTION nemá žádnou odpovídající BEGIN TRANSACTION

Chyba, kterou dostáváte, je, že se vracíte zpět, aniž byste měli otevřenou transakci (máte buď již zavázaný nebo vrácený zpět). Zvažte vyčištění struktury uloženého procesu, zkuste spustit celý uložený proces jako jednu transakci a poté se v případě chyby vraťte zpět. Můžete také otestovat, zda je vyžadováno vrácení zpět kontrolou, zda je transakce otevřená:

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. zamkněte řádky, dokud příště nevyberete postgres

  2. PHP/MySql vyhledávací pole s polem

  3. Použití Aria Storage Engine se serverem MariaDB

  4. Jak nastavit nepojmenované parametry SQL v SqlCommand