आप अपने एसक्यूएल सर्वर संस्करण निर्दिष्ट नहीं किया है लेकिन मैं इसे 2012 नहीं है हालांकि, इस सवाल के भविष्य के पाठकों पर 2012+ तो मैं उनके लिए इस उत्तर पोस्ट कर रहा हूँ हो सकता है यह सोचते हैं रहा हूँ।
SQL सर्वर 2012 क्वेरी और पैरामीटर के बारे में अधिक मेटा-डेटा प्रदान करने के लिए प्रक्रियाओं का एक सेट प्रदान करता है। इस मामले में, संग्रहित प्रक्रिया sp_describe_first_result_set एक आसान टैब्यूलर फॉर्म प्रदान करेगी।
वहाँ भी है एक DMO समारोह, sys.dm_exec_describe_first_result_set, है जो आप अपने उदाहरण
DECLARE
-- Your query goes here
@query nvarchar(4000) = N'SELECT * FROM mdm.tblStgBatch AS TSB';
-- Tabular results
EXECUTE sys.sp_describe_first_result_set @tsql = @query;
-- Simple column count
SELECT
COUNT(1) AS column_count
FROM
sys.dm_exec_describe_first_result_set(@query, NULL, 0);
नया मेटाडाटा खोज विकल्प FMTONLY जो है कैसे एक को हल किया जा प्रतिस्थापित कर रहे हैं में उपयोग करना चाहें समान सामग्री उपलब्ध कराने के 2012 से पहले यह समस्या। मेरी टीएसक्यूएल चॉप स्पष्ट रूप से इसके साथ कुछ भी उपयोगी करने के लिए पर्याप्त मजबूत नहीं हैं और इसके बजाय मुझे एफएमटीटीई के आउटपुट के साथ काम करने के लिए एक .NET भाषा में जमानत देना होगा।
SET FMTONLY ON;
SELECT *
FROM A1, A2;
SET FMTONLY OFF;
जिज्ञासा से, आप कॉलम की कुल संख्या क्यों चाहते हैं? साथ ही, आपको क्लॉज में अंतर्निहित जॉइन के बजाय, उचित रूप से सिंटैक्स में शामिल होना चाहिए। –
कुछ विरासत कोड हैं जिनके साथ मुझे काम करना है और मुझे किसी अन्य स्थान पर जांच करने की आवश्यकता है कि कितने कॉलम लौटाए जाते हैं। यह एक डिबगिंग समस्या –
की तरह है, मुझे रिकॉर्ड गिनती की आवश्यकता नहीं है, मुझे केवल –