यदि मेरे पास एक संग्रहित प्रक्रिया है जो विभिन्न तर्कों के साथ कई बार संग्रहीत प्रक्रिया निष्पादित करती है, तो क्या इनमें से प्रत्येक कॉल स्वतंत्र रूप से दूसरों के लिए प्रतिबद्ध है?मैं कैसे सुनिश्चित कर सकता हूं कि नेस्टेड लेन-देन एक-दूसरे से स्वतंत्र रूप से किए जाते हैं?
दूसरे शब्दों में, यदि नेस्टेड प्रक्रिया के पहले दो निष्पादन सफल होते हैं, लेकिन तीसरा विफल रहता है, तो क्या पहले दो निष्पादन (और उन्हें वापस रोल नहीं) के परिणामों को संरक्षित करना संभव है?
मैं इस तरह एक संग्रहीत प्रक्रिया परिभाषित कुछ एसक्यूएल सर्वर 2000 में है: यहाँ खेद पुन: पेश करने
CREATE PROCEDURE toplevel_proc ..
AS
BEGIN
...
while @row_count <= @max_rows
begin
select @parameter ... where rownum = @row_count
exec nested_proc @parameter
select @row_count = @row_count + 1
end
END
"रोलबैक ट्रैन के बजाय रोलबैक ट्रैन का उपयोग करें" ?? – Greg
@ ग्रेग - इसे इंगित करने के लिए धन्यवाद। मैंने उद्धृत पाठ को 'savepoint_name' टेक्स्ट के आस-पास कोण ब्रैकेट का उपयोग किया और इससे एसओ मार्कअप इंजन को टेक्स्ट छिपाने का कारण बन गया। स्क्वायर ब्रैकेट का उपयोग करने के लिए टेक्स्ट संपादित किया है। – Tony
इसे ठीक करने के लिए धन्यवाद! – Greg