Vous devrez utiliser Dynamic SQL - vous ne pouvez pas utiliser de paramètres comme noms de table ou de colonne. Donc quelque chose comme :
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
Veuillez garder à l'esprit les problèmes de sécurité et de performances associés au SQL dynamique - je ne sais pas comment vous allez remplir les variables, ici, et il peut y avoir un certain danger à le faire.
EDIT :Ajout du code complet.