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

Tsql में तालिका का गतिशील निर्माण

क्या आप कुछ इस तरह इस्तेमाल कर पाएंगे?

DECLARE @Tab VARCHAR(MAX)
SET @Tab = 'CREATE TABLE #Whatever ('

SELECT @Tab = @Tab + QUOTENAME(ColumnName) + ' INT NULL
,'
FROM @This
SELECT @Tab = SUBSTRING(@Tab,1,LEN(@Tab)-1) + ')'
PRINT @Tab
-- EXEC (@Tab)

दो बिंदु:आप पा सकते हैं कि आपको गतिशील sql का उपयोग किए बिना अस्थायी तालिका बनाने की आवश्यकता होगी, फिर तालिका को बदलने के लिए चयन कथन को समायोजित करें; ऐसा इसलिए है कि तालिका वर्तमान संदर्भ में मौजूद है - यदि निर्माण कथन गतिशील में है, तो आपको एक त्रुटि मिल सकती है।

मुझे इस तरह से गतिशील एसक्यूएल का उपयोग करना पसंद नहीं है - यदि आप कॉलम को वापस करने के लिए बाद में एक पिवट का उपयोग कर सकते हैं, तो यह एक बेहतर विकल्प हो सकता है (मुझे यकीन नहीं है कि यह इस मामले में संभव है)।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर की तरह बाइनरी कॉलम को क्वेरी करना

  2. DATEFIRST सेट करें - SQL सर्वर में सप्ताह का पहला दिन सेट करें

  3. किसी इंट को दिनांक फ़ील्ड में कनवर्ट करें

  4. SQL सर्वर एजेंट सेवा के लिए क्रेडेंशियल अमान्य हैं

  5. मुझे Microsoft.SqlServer.BatchParser.dll कहाँ मिल सकता है?