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