Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

तालिका नाम को स्ट्रिंग के रूप में निर्दिष्ट करने का कोई तरीका है?

आप इसे 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं ASP.NET और SQL सर्वर के बीच कनेक्शन पूल समस्या को कैसे हल कर सकता हूं?

  2. डायनेमिक एसक्यूएल (पैरामीटर के रूप में टेबल का नाम पास करना)

  3. उपयोग पर NOCOUNT सेट करें

  4. xampp का उपयोग करके sql सर्वर को php से कैसे कनेक्ट करें?

  5. sqlAlchemy के साथ संग्रहीत कार्यविधियाँ