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