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