मैं एक परमाणु लेनदेन को निम्न की तरह लागू करना चाहता हूं:
BEGIN TRAN a SELECT id इनवेंटरी से (???) WHERE सामग्री_आईडी = 25 और मात्रा & gt; 10 / * इन्वेंट्री रिकॉर्ड का इस्तेमाल करते हुए कुछ चीजों पर प्रक्रिया करें और अंततः कुछ अपडेट लिखें जो इस तथ्य पर निर्भर होते हैं कि उस विशिष्ट इन्वेंट्री रिकॉर्ड में पर्याप्त मात्रा (10 से अधिक) थी। * / कॉमिट ट्रॅन ए
समस्या यह है कि ऐसे अन्य लेन-देन होते हैं जो हमारी इन्वेंट्री से मात्रा का उपभोग करते हैं, इसलिए उस समय के बीच कि रिकॉर्ड का चयन होता है और अपडेट लेनदेन ए में लिखा जाता है रिकॉर्ड एक अमान्य चयन हो सकता है क्योंकि यह मात्रा कहीं पर दहलीज से कम हो सकती है।
तो सवाल यह है कि क्या चुने गए संकेतों को मैं चुने हुए संकेतों में इस्तेमाल करने से रोकने के लिए चुने गए इन्वेंट्री रिकॉर्ड को रोकने के लिए मेरे अपडेट समाप्त करने और लेनदेन करने से पहले बदल दिया गया है?
संपादित करें: इसलिए जॉन के लिए धन्यवाद, एक अच्छा समाधान लेन-देन अलगाव स्तर को पुनरावृत्त पढ़ें सेट करने के लिए लगता है। यह सुनिश्चित करेगा कि "कोई भी अन्य लेनदेन वर्तमान लेनदेन पूर्ण होने तक वर्तमान लेनदेन के द्वारा पढ़ा गया डेटा को संशोधित नहीं कर सकता है।"
आप वास्तव में एक संकेत संकेत का उपयोग करने के बजाय लेनदेन आइसोलेशन स्तर की सेटिंग से बेहतर हो सकते हैं।
पुस्तकें ऑनलाइन से निम्नलिखित संदर्भ में प्रत्येक अलग अलगाव स्तर का विवरण दिया गया है।
>
Comments
Post a Comment