Nvarchar语句中的Int变量

时间:2012-04-19 15:41:28

标签: sql-server

以下代码发送错误。

@ resp2是INT,这是预先完成的总和的结果。所以现在我想使用dinamic语句更新另一个表中的某些行。

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

我尝试的第一件事是'''+ @ resp2 +'''但我不希望它是

  

'变量值'

因为它是INT值而且不需要''

错误发生了。我不能将一些INT值放入字符串中。我会使用强制转换或转换,但我怎么能在声明中做到? 或者我可能是从错误的角度来看待更新?

感谢。

修改

解决。

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

这比我想象的要容易,谢谢。

2 个答案:

答案 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)