以下代码发送错误。
@ resp2是INT,这是预先完成的总和的结果。所以现在我想使用dinamic语句更新另一个表中的某些行。
SET @SQL = 'update TelepromTableNamesInfo set [Resp] = '+@RESP2+'
where nombre = ''' + @TableWBraq + ''''
EXEC (@SQL)
我尝试的第一件事是'''+ @ resp2 +'''但我不希望它是
'变量值'
因为它是INT值而且不需要''
错误发生了。我不能将一些INT值放入字符串中。我会使用强制转换或转换,但我怎么能在声明中做到? 或者我可能是从错误的角度来看待更新?
感谢。
修改
解决。
'+ cast(@RESP2 as nvarchar(7))+'
这比我想象的要容易,谢谢。
答案 0 :(得分:2)
SET @SQL = 'update TelepromTableNamesInfo set [Resp] = '+ CAST(@RESP2 AS VARCHAR(50)) +'
where nombre = ''' + @TableWBraq + ''''
EXEC (@SQL)
答案 1 :(得分:0)
可能单引号正在创建问题。请试试以下内容:
SET @SQL = 'update TelepromTableNamesInfo set [Resp] = '+@RESP2+
'where nombre = '"' + @TableWBraq + '"'
EXEC (@SQL)