2016-03-02 4 views
0

У меня есть кусок кода, чтобы обновить значение столбца, но он дает мне ошибку:Выбор имени столбца на основе имени переменного, чтобы обновить значение,

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

Я попытался EXEC команды с помощью:

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

но я получаю следующую ошибку:

Syntax error during implicit conversion of VARCHAR value 'where Day = 'D-2WD'' to a DATE field.

Почему он пытается преобразовать значение в поле даты?

+0

Так же ошибка происходит при выполнении оператора в явном виде, или только тогда, когда оператор создается динамически? –

+0

Это происходит при компиляции, не переходит в EXEC –

+0

'SELECT @sql =" UPDATE #Cal SET "+ @Cur +" = "+ @ 2YD +" где Day = 'D-2WD' " EXEC @ sql' – Meet

ответ

0

Попробуйте преобразовать в явном виде:

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

 Смежные вопросы

  • Нет связанных вопросов^_^