17
कभी-कभी मैंने निम्न कोड स्निपेट देखा। begin try
के साथ आवश्यक कब है? वो दोनों? या यह जांच से पहले रोलबैक होने पर हमेशा इसे सुरक्षित रखने के लिए एक सुरक्षित तरीका (सर्वोत्तम अभ्यास) है?जब पकड़ने की कोशिश में @@ trancount> 0 जांचना आवश्यक है?
begin tran
begin try
... just several lines of sql ...
if @@trancount > 0 commit tran
end try
begin catch
if @@trancount > 0 rollback tran
end catch
उदाहरण लगता है नेस्टेड लेनदेन से बचने का प्रयास करें। क्या ये ज़रूरी हैं? – ca9163d9
मेरे लिए, विचार यह है कि यदि यह नई कार्रवाई एक नेस्टेड लेनदेन है, तो इसे सहेजें। यदि कोई त्रुटि है और यदि यह घोंसला वाला लेनदेन है, तो केवल नेस्टेड लेनदेन को रोलबैक करें ताकि मूल कॉलर को प्रभावित न किया जा सके। – 8kb
4: जब आप कुछ कचरा एन्क्रिप्टेड एपीआई एसपी बुला रहे हैं जो अपने लेनदेन को रोलबैक नहीं करता है तो यह तय करता है कि कोई समस्या है ... –