0

次のコードはエラーを送信します。

@ resp2はINTであり、これは以前に行われた合計の結果です。そこで、動的ステートメントを使用して、別のテーブルの行を更新したいと思います。

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

私が最初に試したのは'''+@ resp2 +'''ですが、私はそれを望んでいません

'変数値'

これはINT値であり、''の必要がないためです。

エラーは意味をなします。INT値を文字列に入れることができません。キャストまたは変換を使用しますが、ステートメント内でどのように実行できますか?それとも、間違った観点からアップデートに近づいていますか?

ありがとう。

編集

解決しました。

'+ 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 に答える