EXECUTE स्टेटमेंट में बस एक अलग व्याकरण होता है, फिर अन्य स्टेटमेंट जैसे SELECT और SET। उदाहरण के लिए, निम्नलिखित दो पृष्ठों के शीर्ष पर वाक्य रचना अनुभाग देखें।
निष्पादित कथन:http://msdn.microsoft.com/en-us/ पुस्तकालय/ms188332.aspx
सेट स्टेटमेंट:http://msdn.microsoft.com/en-us/ लाइब्रेरी/ms189484.aspx
EXECUTE का सिंटैक्स केवल मान . स्वीकार करता है
जबकि SET का सिंटैक्स अभिव्यक्ति . को स्वीकार करता है
एक मूल्य मूल रूप से केवल एक कठिन कोडित स्थिरांक है, लेकिन एक अभिव्यक्ति का मूल्यांकन किया जा रहा है। यह वर्चर 'सेलेक्ट 1 + 1' होने जैसा है। यह अभी सिर्फ एक वर्चर वैल्यू है। हालांकि, आप मूल्यांकन कर सकते हैं इस तरह की स्ट्रिंग:
EXEC('SELECT 1 + 1')
मुझे लगता है कि मैं जो इंगित कर रहा हूं वह यह है कि EXEC कमांड परिभाषा के अनुसार अभिव्यक्तियों की अनुमति नहीं देता है, जिसे आपने स्पष्ट रूप से पहले ही पाया है। मुझे नहीं पता कि टी-एसक्यूएल के डेवलपर्स का इरादा क्या है जब उन्होंने इसे इस तरह बनाया। मुझे लगता है कि यदि आप संग्रहीत कार्यविधि की पैरामीटर सूची में उपश्रेणियों के भीतर उपश्रेणियों को फेंकने की अनुमति देते हैं तो व्याकरण हाथ से निकल जाएगा।
टी-एसक्यूएल एक्सप्रेशन:http://msdn.microsoft.com/en- us/लाइब्रेरी/ms190286.aspx