पर संग्रहीत प्रोसेस को सम्मिलित करें मैंने एक संग्रहित proc लिखा है जो एक रिकॉर्ड मौजूद होने पर अद्यतन करेगा, अन्यथा यह एक डालने वाला होगा। यह इस तरह दिखता है: इस तरह से यह लिखने के पीछेएसक्यूएल सर्वर
update myTable set [email protected], [email protected] where [email protected]
if @@rowcount = 0
insert into myTable (Col1, Col2) values (@col1, @col2)
मेरे तर्क है कि अद्यतन एक अंतर्निहित जहां खंड का उपयोग कर चयन प्रदर्शन करेंगे और है कि अगर रिटर्न 0 तो डालने को होगा।
यह इस तरह से कर रही करने के लिए वैकल्पिक एक का चयन करें और फिर पंक्तियों की संख्या के आधार पर करने के लिए हो सकता है लौट आए या तो एक अद्यतन करते हैं या सम्मिलित होगा। यह मुझे अक्षम माना जाता है क्योंकि यदि आप एक अद्यतन करना चाहते हैं तो यह 2 चयन (पहला स्पष्ट चयन कॉल और अपडेट के दूसरे भाग में) का कारण बन जाएगा। यदि proc एक डालने के लिए किया गया था तो दक्षता में कोई अंतर नहीं होगा।
क्या मेरा तर्क ध्वनि यहाँ है? क्या यह एक संग्रहित proc में एक डालने और अद्यतन को गठबंधन करेगा?
ठीक है, कम से कम एक प्रश्न का उत्तर दिया, मुझे लगता है। और मैंने कोड नहीं जोड़ा क्योंकि सवाल में कोड पहले से ही मेरे लिए सही लग रहा था। हालांकि मैं इसे एक लेनदेन में डालूंगा, लेकिन मैंने अद्यतन के लिए अलगाव स्तर को ध्यान में नहीं रखा। आपके जवाब में इंगित करने के लिए धन्यवाद! – binOr