आपको डायनामिक एसक्यूएल का उपयोग करना होगा - आप पैरामीटर का उपयोग टेबल या कॉलम नामों के रूप में नहीं कर सकते हैं। तो कुछ इस तरह:
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 से जुड़े सुरक्षा और प्रदर्शन के मुद्दों को ध्यान में रखें - मुझे नहीं पता कि आप यहां कैसे वेरिएबल्स को पॉप्युलेट करेंगे, और ऐसा करने में कुछ निश्चित खतरा हो सकता है।
संपादित करें:पूरा कोड जोड़ा गया।