Lỗi bạn đang gặp phải là do bạn quay trở lại mà không có giao dịch đang mở (bạn đã đã cam kết hoặc quay trở lại). Cân nhắc làm sạch cấu trúc của proc đã lưu trữ của bạn, thử thực hiện toàn bộ proc được lưu trữ của bạn dưới dạng một giao dịch và sau đó quay lại nếu xảy ra lỗi. Bạn cũng có thể kiểm tra xem có yêu cầu khôi phục hay không bằng cách kiểm tra xem giao dịch có đang mở hay không:
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