根据变量名选择列名以更新值

时间:2016-03-02 09:42:34

标签: sybase sybase-ase

我有一段代码来更新列值,但它给了我错误:

UPDATE #Cal SET @Curr = @2YD where Day = 'D-3WD'

我尝试EXEC命令使用:

SELECT @sql = "UPDATE #Cal SET " + @Cur + " = " + @2YD + "where Day = 'D-2WD'"
EXEC @sql

但我收到以下错误:

  

隐式转换VARCHAR值时的语法错误'其中Day =' D-2WD''到DATE字段。

为什么要尝试将值转换为日期字段?

1 个答案:

答案 0 :(得分:0)

尝试明确转换:

SELECT @sql = "UPDATE #Cal SET " + convert (varchar(25),@Cur) + " = " + convert (varchar(25),@2YD ) + "where Day = 'D-2W