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

एसक्यूएल सर्वर परिवर्तनीय कॉलम नाम?

आप ऐसा नहीं कर सकते क्योंकि SQL को संकलित किया जाता है इससे पहले कि यह जानता है कि @a का मान क्या है (मैं वास्तव में मान रहा हूं कि आप चाहते हैं कि @a कुछ पैरामीटर हो और आपके उदाहरण में हार्ड कोड न हो)।

इसके बजाय आप यह कर सकते हैं:

declare @a as varchar; 
set @a='TEST' 

declare @sql nvarchar(max)
set @sql = 'select [' + replace(@a, '''', '''''') + '] from x'

exec sp_executesql @sql

लेकिन सावधान रहें, यह एक सुरक्षा भेद्यता (एसक्यूएल-इंजेक्शन हमले) है, इसलिए ऐसा नहीं किया जाना चाहिए यदि आप @a पर भरोसा या अच्छी तरह से साफ नहीं कर सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर फ़ाइल नाम बनाम संस्करण

  2. फ़ील्ड मान का निर्धारण कैसे करें जो SQL सर्वर में (दशमलव, फ्लोट, इंट) में परिवर्तित नहीं हो सकता है

  3. SQL सर्वर डेटाबेस सर्वर हार्डवेयर अपग्रेड केस स्टडी

  4. ऑन-प्रिमाइसेस बनाम सास:डेटाबेस मॉनिटरिंग सिस्टम आर्किटेक्चर

  5. जांचें कि क्या कोई अस्थायी तालिका मौजूद है और अस्थायी तालिका बनाने से पहले उसे हटा दें