मैंने कभी नहीं समझा है कि नेस्टेड लेनदेन क्या अच्छा है। नेस्टेड लेनदेन करना कुछ भी नहीं करता है - यह @@TRANCOUNT
घटता है। और ROLLBACK
सब कुछ रोलबैक।नेस्टेड लेनदेन का उद्देश्य
BEGIN TRANSACTION
//do an update
BEGIN TRANSACTION
//do an insert
COMMIT TRANSACTION
COMMIT TRANSACTION
क्या इस के साथ अंतर नहीं है:
BEGIN TRANSACTION
//do an update
//do an insert
COMMIT TRANSACTION
मुझे एक उदाहरण देता हूँ कृपया क्यों नेस्टेड लेनदेन इस्तेमाल किया जाना चाहिए और कैसे वे एक फर्क।
सादर, Petar
मैं नेस्टेड लेनदेन के बिना सुरक्षित बिंदुओं का उपयोग कर सकता हूं। संग्रहीत प्रक्रिया एक अच्छी बात है (मैंने कभी इसके बारे में सोचा नहीं है)। लेकिन अगर मैं अपने लेनदेन में संग्रहीत प्रक्रिया का उपयोग नहीं करता (या अन्य कोड नहीं कहता), तो मुझे नेस्टेड लेनदेन की आवश्यकता क्यों होनी चाहिए? मैं लगातार नेस्टेड लेनदेन के साथ उदाहरण देखता हूं और मुझे उनका बिंदु नहीं दिखता है। –
तो बाहरी लेनदेन कोड को कॉल करते समय केवल घोंसला लेनदेन उपयोगी होते हैं? –
मैं आपके साथ सहमत हूं और मुझे लगता है कि वे बाहरी लेनदेन कोड को कॉल करने के लिए उपयोगी हैं। नेस्टेड लेनदेन को संभालने के लिए SQL सर्वर की तकनीकी क्षमता महत्वपूर्ण है और सभी डीबी सिस्टम में उपलब्ध नहीं है। कुछ मामले हैं (जैसे कि उल्लिखित एसपी के साथ - जहां आपको ['SET XACT_ABORT ON'] का भी उपयोग करना चाहिए (http://stackoverflow.com/questions/1150032/what-is-the-benefit-of-using-set -xact-abort-on-in-a-store-process)) जहां वे "स्वाभाविक रूप से घोंसला" कर सकते हैं। मैंने कभी भी स्पष्ट नेस्टेड लेनदेन का उपयोग नहीं किया। – Lucero