0

以下代码发送错误。

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

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

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

'变量值'

因为它是一个 INT 值并且不需要 ''

这个错误是有道理的。我不能将一些 INT 值放入字符串中。我会使用 cast 或 convert 但我怎样才能在语句中做到这一点?还是我从错误的角度接近更新?

谢谢。

编辑

解决了。

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

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

4

2 回答 2

2
SET @SQL = 'update TelepromTableNamesInfo set [Resp] = '+ CAST(@RESP2 AS VARCHAR(50)) +'
                where nombre = ''' + @TableWBraq + ''''
EXEC (@SQL)
于 2012-04-19T15:52:58.493 回答
0

可能是单引号造成了问题。请尝试以下方法:

SET @SQL = 'update TelepromTableNamesInfo set [Resp] = '+@RESP2+
                'where nombre = '"' + @TableWBraq + '"'
EXEC (@SQL)
于 2012-04-19T15:50:56.857 回答