आपको जो त्रुटि मिल रही है, वह यह है कि आप खुले लेन-देन के बिना वापस आ रहे हैं (आपके पास या तो पहले से है) प्रतिबद्ध या लुढ़का हुआ)। अपनी संग्रहीत खरीद की संरचना को साफ करने पर विचार करें, अपनी पूरी संग्रहीत खरीद को एक लेनदेन के रूप में निष्पादित करने का प्रयास करें, और फिर कोई त्रुटि होने पर वापस रोल करें। लेन-देन खुला है या नहीं, इसकी जांच करके आप यह भी जांच सकते हैं कि रोलबैक की आवश्यकता है या नहीं:
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