2012-04-19 5 views
0

Следующий код отправляет сообщение об ошибке.Переменная внутри переменной Nvarchar

@ resp2 is INT, это результат искупительной суммы. Поэтому теперь я хочу обновить некоторую строку в другой таблице, используя динамический оператор.

SET @SQL = 'update TelepromTableNamesInfo set [Resp] = '[email protected]+' 
       where nombre = ''' + @TableWBraq + '''' 
EXEC (@SQL) 

Первая вещь, которую я пытался это '' '+ @ resp2 +' '' Но я не хочу быть

'значение переменной'

, так что это INT, и нет необходимости в ''

Ошибка возникает. Я не могу поместить некоторое значение INT в строку. Я бы использовал листинг или конвертировать, но как я могу сделать это внутри оператора? Или, может быть, я приближаюсь к обновлению с неправильной точки зрения?

Спасибо.

EDIT

решаемая.

'+ cast(@RESP2 as nvarchar(7))+' 

Было легче, чем я думал, спасибо.

ответ

2
SET @SQL = 'update TelepromTableNamesInfo set [Resp] = '+ CAST(@RESP2 AS VARCHAR(50)) +' 
       where nombre = ''' + @TableWBraq + '''' 
EXEC (@SQL) 
+0

Да! Я пытался это сделать, прежде чем писать. Большое спасибо, все. –

0

Может быть, одна цитата создает проблему. Пожалуйста, дайте попробовать следующее:

SET @SQL = 'update TelepromTableNamesInfo set [Resp] = '[email protected]+ 
       'where nombre = '"' + @TableWBraq + '"' 
EXEC (@SQL) 
Смежные вопросы