エラーが表示されます:
varchar 値 'INSERT INTO TableRowCount (IntFieldID, DecimalField) SELECT' をデータ型 int に変換するときに変換に失敗しました"
次のコードを使用します。
DECLARE @start INT -- @start is an INT
SET @start = 1 -- INT
DECLARE @sql NVARCHAR(MAX)
SET @sql = 'INSERT INTO TableRowCount (IntFieldID, DecimalField)
SELECT ' + @start +', COUNT(*)
FROM dbo.somewhere' -- location is irrelevant
EXECUTE(@sql) -- this is where it fails
と を削除するIntFieldID
と@start
、挿入で機能します (ただし、目的に反します)。を含めようとしましたが、これはすでに ( をとしてキャストする)SELECT CAST(' + @start + ' AS INT)
ため、少し冗長に思えますが、どちらも機能しません。また、 DYNAMIC-SQLから始めてみましたが、うまくいきませんでした。すべての周りで 3 つを使用してみました (うまくいきませんでした)。オンラインで読んだいくつかの場所では、変数を文字列に入れることを提案する応答がありました。エラー:@start
INT
INT
INT
N'
'''
スカラー変数 @start を宣言する必要があります
(それは正しく聞こえなかったので、当然のことです)。