N.B. - यह प्रश्न और उत्तर SQL सर्वर के 2000 संस्करण से संबंधित है। बाद के संस्करणों में, INSERT INTO @table_variable ... EXEC ...
. पर प्रतिबंध उठा लिया गया था और इसलिए यह उन बाद के संस्करणों पर लागू नहीं होता है।
आपको एक अस्थायी तालिका पर स्विच करना होगा:
CREATE TABLE #tmp (code varchar(50), mount money)
DECLARE @q nvarchar(4000)
SET @q = 'SELECT coa_code, amount FROM T_Ledger_detail'
INSERT INTO #tmp (code, mount)
EXEC sp_executesql (@q)
SELECT * from #tmp
दस्तावेज़ीकरण से:
<ब्लॉकक्वॉट>एक तालिका चर स्थानीय चर की तरह व्यवहार करता है। इसका एक अच्छी तरह से परिभाषित दायरा है, जो कि फ़ंक्शन, संग्रहीत प्रक्रिया या बैच है जिसमें इसे घोषित किया गया है।
इसके दायरे में, एक तालिका चर का उपयोग नियमित तालिका की तरह किया जा सकता है। इसे कहीं भी लागू किया जा सकता है तालिका या तालिका अभिव्यक्ति का चयन, सम्मिलित करें, अद्यतन करें, और हटाएं कथन में उपयोग किया जाता है। हालाँकि, निम्नलिखित कथनों में तालिका का उपयोग नहीं किया जा सकता है:
INSERT INTO table_variable EXEC stored_procedure
SELECT select_list INTO table_variable statements.