मैं हमेशा इन दिनों sp_executesql का उपयोग करता हूं, यह वास्तव में EXEC के लिए एक रैपर है जो पैरामीटर & चर को संभालता है।
हालांकि बहुत बड़े डेटाबेस पर प्रश्नों को ट्यून करते समय विकल्प रिकॉम्पिल के बारे में मत भूलना, विशेष रूप से जहां आपके पास एक से अधिक डेटाबेस पर डेटा फैला हुआ है और इंडेक्स स्कैन को सीमित करने के लिए कंसस्ट्रेंट का उपयोग कर रहे हैं।
जब तक आप विकल्प रिकॉम्पिल का उपयोग नहीं करते हैं, तो SQL सर्वर आपकी क्वेरी के लिए "एक आकार सभी फिट बैठता है" निष्पादन योजना बनाने का प्रयास करेगा, और प्रत्येक बार चलाए जाने पर एक पूर्ण अनुक्रमणिका स्कैन चलाएगा।
यह बहुत कम एक की तलाश की तुलना में कुशल है, और यह संभवतः पूरे अनुक्रमित जो श्रेणियों के लिए विवश कर रहे हैं जो आप भी क्वेरी करने नहीं कर रहे हैं स्कैनिंग है मतलब है: @
मुझे नहीं लगता कि आप इसे बिना एक गतिशील एसक्यूएल parameteize कर सकते हैं ?? –
EXEC ('चयन करें * जहां से आईडी =?', 123) पैरामीटर प्लेसहोल्डर को प्रतिस्थापित करेगा "?"मूल्य 123 के साथ और फिर क्वेरी निष्पादित करें, चयन के लिए परिणाम लौटाएं * जहां से आईडी = 123 –
ओह, यह वाक्यविन्यास केवल लिंक किए गए सर्वर के लिए उपलब्ध है। –