मेरे पास एक संग्रहीत प्रक्रिया है जो 80 कॉलम और 300 पंक्तियों को लौटाती है। मैं उन कॉलमों में से 2 का चयन करने के लिए लिखना चाहता हूं। कुछ इस तरह
SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2'
जब मैंने उपरोक्त सिंटैक्स का उपयोग किया तो मुझे त्रुटि मिली:
"अमान्य कॉलम नाम"।
मुझे पता है कि सबसे आसान समाधान संग्रहित प्रक्रिया को बदलना होगा, लेकिन मैंने इसे नहीं लिखा, और मैं इसे बदल नहीं सकता।
क्या मुझे जो चाहिए वो करने का कोई तरीका है?
मैं परिणामों को डालने के लिए एक अस्थायी तालिका बना सकता हूं, लेकिन क्योंकि 80 स्तंभ हैं इसलिए मुझे केवल 2 कॉलम प्राप्त करने के लिए 80 कॉलम की अस्थायी तालिका बनाने की आवश्यकता होगी। मैं उन सभी स्तंभों को ट्रैक करने से बचना चाहता था जो वापस आ गए हैं।
मैंने
WITH SprocResults AS ....
मार्क द्वारा सुझाए अनुसार उपयोग करने की कोशिश की , लेकिन मुझे 2 त्रुटियां मिलींकीवर्ड 'EXEC' के पास गलत सिंटैक्स।
आगे गलत वाक्य रचना ')'।मैंने एक तालिका चर घोषित करने की कोशिश की और मुझे निम्नलिखित त्रुटि मिली
त्रुटि डालें: स्तंभ नाम या आपूर्ति किए गए मानों की संख्या तालिका परिभाषा से मेल नहीं खाती
अगर मैं कोशिश करता
SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
हूं तो मुझे त्रुटि मिलती है:कीवर्ड 'निष्पादित' के पास गलत सिंटैक्स।
EXEC
MySQL कीवर्ड नहीं है (MySQL समतुल्य तैयार स्टेटमेंट है )। हालांकि मैं MySQL के लिए जवाब जानना चाहता हूं, लक्ष्य टी-एसक्यूएल के नीचे दिए गए उत्तर। Retagging।