Ще трябва да използвате Dynamic SQL - не можете да използвате параметри като имена на таблици или колони. Така че нещо като:
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 - не знам как ще попълните променливите тук и може да има определена опасност при това.
РЕДАКТИРАНЕ:Добавен пълен код.