आप इसे EXEC स्टेटमेंट में इस तरह लपेट सकते हैं:
declare @my_tablename nvarchar(100) = 'mytable';
exec('
SELECT * FROM
(
SELECT * FROM
(
SELECT * FROM ' + @my_tablename + '
)
INNER JOIN ' + @my_tablename + ' ON ...'
);
लेकिन नहीं, उस परिदृश्य में इंटेलिजेंस काम नहीं करेगा।
यदि आप जानते हैं कि आपका आउटपुट पहले से कैसा दिखेगा, तो आप परिणाम रखने के लिए एक अस्थायी तालिका घोषित कर सकते हैं, और फिर आप बिना EXEC के उस तक पहुंच सकते हैं। आपके पास अस्थायी तालिका पर इंटेलिजेंस होगा।
उदाहरण के लिए:
--this must match whatever your SELECT is going to return
CREATE TABLE #results(
FIELD1 INT
,FIELD2 NVARCHAR(100)
,FIELD3 BIT
);
EXEC('
INSERT INTO #results(field1,field2,field3)
SELECT FIELD1,FIELD2,FIELD3 FROM ' + @my_tablename
);
select * from #results --you will have intellisense on #results