在 sql 服务器中映射动态列名称

Mapping dynamic column names in sql server

DECLARE @step VARCHAR(25) = '15';
DECLARE @COL VARCHAR(50) = step_col_@step;
UPDATE table_tblName SET @COL=<some value> WHERE <condition>

我有上面的查询,其中 @COL 应该是动态的,即 step_col_1、step_col_2、step_col_3......step_col_18。在 sql 服务器中没有 If-else 条件的情况下如何实现此目的?

试试下面的查询,

DECLARE @COL VARCHAR(50) = 'step_col_'+@step

像这样传递变量以形成动态sql查询

DECLARE @step VARCHAR(25) = '15';
DECLARE @COL VARCHAR(50) = 'step_col_'+@step
exec ('UPDATE table_tblName SET '+@COL+'=<some value> WHERE <condition>')
 DECLARE @step VARCHAR(25) = '15';
 DECLARE @COL VARCHAR(50) = 'step_col_'+@step;
 DECLARE @String VARCHAR(500) = ''
 SET @String = 'UPDATE table_tblName SET '''+@COL+''' = <some value> WHERE  
 <condition>' 
 EXEC (@String)
DECLARE @step VARCHAR(25) = '15';
DECLARE @COL VARCHAR(50) 
SET @COL = 'step_col'+@step;

UPDATE table_tblName SET @COL=<some value> WHERE <condition>