Это невозможно, если вы не используете строку sql.
DECLARE @VAR1 nvarchar(255) = 'PRIMARYNAME'
DECLARE @VAR2 nvarchar(255) = 'ANDREW'
DECLARE @strSQL nvarchar(255)
DECLARE @counter INT = 5
WHILE @counter <> 0
BEGIN
PRINT 'PRE VAR1: '+@VAR1
PRINT 'PRE VAR2: '+@VAR2
SET @strSQL = N'UPDATE test
SET name = @VAR1'
PRINT @strSQL
exec sp_executesql @strSQL , N'@VAR1 nvarchar(255)', @VAR1
PRINT 'POST VAR1: '+@VAR1
PRINT 'POST VAR2: '+@VAR2
SET @counter = @counter -1
END
Если вы @ VAR1 - динамический столбец, используйте его вместо этого.
DECLARE @VAR1 nvarchar(255) = 'PRIMARYNAME'
DECLARE @VAR2 nvarchar(255) = 'ANDREW'
DECLARE @strSQL nvarchar(255)
DECLARE @counter INT = 5
WHILE @counter <> 0
BEGIN
PRINT 'PRE VAR1: '+@VAR1
PRINT 'PRE VAR2: '+@VAR2
SET @strSQL = N'UPDATE test
SET '+ QUOTENAME(@VAR1) + ' = @VAR2'
PRINT @strSQL
exec sp_executesql @strSQL , N'@VAR1 nvarchar(255), @VAR2 nvarchar(255)', @VAR1, @VAR2
PRINT 'POST VAR1: '+@VAR1
PRINT 'POST VAR2: '+@VAR2
SET @counter = @counter -1
END