Вам придется использовать динамический 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 - я не знаю, как вы будете заполнять переменные здесь, и здесь может быть определенная опасностьпри этом.
РЕДАКТИРОВАТЬ: Добавлен полный код.