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

स्तंभ-नाम और/या तालिका-नाम पैरामीटर के रूप में

आपको डायनामिक एसक्यूएल का उपयोग करना होगा - आप पैरामीटर का उपयोग टेबल या कॉलम नामों के रूप में नहीं कर सकते हैं। तो कुछ इस तरह:

CREATE TABLE #temp (newcol nvarchar(500)) -- Use the type you're getting out of @TableName
DECLARE @TableName nchar(20) = 'MyTable'
DECLARE @ColumnName nchar(20) = 'MyColumn'

EXEC('INSERT INTO #temp SELECT [' + @ColumnName + '] FROM [' + @TableName + ']')

DECLARE UpdateList CURSOR FOR
SELECT newcol FROM #temp
OPEN UpdateList

कृपया डायनामिक 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. SQL फ़ंक्शन में क्वेरी सम्मिलित करें

  2. SQL सर्वर में, क्या मुझे पहचान कॉलम के लिए एक इंडेक्स बनाना चाहिए, या यह स्वचालित रूप से बनाया गया है?

  3. SQL सर्वर निष्पादन योजना - यह क्या है और यह प्रदर्शन समस्याओं में कैसे मदद करता है?

  4. SQL सर्वर:डायनेमिक व्हेयर-क्लॉज

  5. एक संग्रहीत प्रक्रिया के भीतर नियमित अभिव्यक्ति का उपयोग करना