8

मैंने कुछ मामलों में लेनदेन का उपयोग देखा है लेकिन वास्तव में कभी नहीं समझा कि किस परिस्थितियों में उनका उपयोग किया जाना चाहिए। लेनदेन का उपयोग कब और कब किया जाना चाहिए (लेनदेन विवरण शुरू करें)? मैंने पढ़ा है कि माइक्रोसॉफ्ट एक ट्रिगर और संग्रहीत प्रक्रिया के अंदर लेनदेन विवरण (प्रतिबद्ध, रोलबैक) का उपयोग करने का सुझाव नहीं देता है।लेनदेन का उपयोग कैसे करें (लेनदेन शुरू करें, लेनदेन करें)?

उत्तर

5

लेनदेन का उपयोग संग्रहीत प्रक्रियाओं या एसक्यूएल स्क्रिप्ट में त्रुटि प्रबंधन के साथ किया जा सकता है ताकि यह सुनिश्चित किया जा सके कि सब कुछ सुसंगत है।

उदाहरण के लिए, यदि आपके पास एक संग्रहित प्रक्रिया है जो अभिभावक तालिका और बाल तालिका में रिकॉर्ड डालती है, तो आप यह सुनिश्चित करना चाहते हैं कि मूल रिकॉर्ड पहले डाला जाए; यदि यह विफल हो जाता है, तो आप अपने परिवर्तनों को रोलबैक कर सकते हैं ताकि आपके पास अनाथ बच्चे का रिकॉर्ड न हो।

एरलैंड सोमरस्कोग में SQL सर्वर में त्रुटि प्रबंधन का उपयोग करने के तरीके पर great article है।

अंत में, माइक्रोसॉफ्ट ने संग्रहीत प्रक्रियाओं में लेनदेन का उपयोग करने का सुझाव दिया है? मुझे लगता है कि संग्रहीत प्रक्रियाओं का उपयोग करने के लिए एक आदर्श जगह होगी।

+0

धन्यवाद, शायद मेरे बयान से एक उदाहरण के बारे में भी सीधे था: वहाँ एक चेतावनी है कि प्रतिबद्ध या एक प्रक्रिया या ट्रिगर के अंदर रोलबैक का उपयोग कर सकता है त्रुटियों का कारण है: http://msdn.microsoft.com /en-us/library/ms187844(v=SQL.100).aspx – juur

2

अगर मैं एक से दूसरे खाते से moey स्थानांतरित किया गया था, मैं यह 100% सफल या 100% होना चाहेंगे असफल:

UPDATE PersonalAccount SET Balance = Balance - 100 WHERE Username = 'gbn' 
--what if the server caught fire here? 
UPDATE SavingsAccount SET Balance = Balance + 100 WHERE Username = 'gbn' 

आप क्या पढ़ा उपयोग करने की आवश्यकता को छोड़कर, पूरा बकवास के रूप में एक ट्रिगर में ट्रैन।

"Nested stored procedures containing TRY CATCH ROLLBACK pattern?"

संबंधित मुद्दे