I'm receiving an error:
Conversion failed when converting the varchar value 'INSERT INTO TableRowCount (IntFieldID, DecimalField) SELECT 'to data type int"
Using the following code:
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
If I remove IntFieldID
and the @start
, it will work with an insert (though it defeats the purpose). I've tried including a SELECT CAST(' + @start + ' AS INT)
, which seems a little redundant since @start
is an INT
already (casting an INT
as an INT
), but that doesn't work either. I also tried beginning with an N'
DYNAMIC-SQL, which didn't work, I tried using three '''
around everything (didnt' work), and in a few places that I read online, responses suggested putting the variable in the string, which generated the error:
Must declare scalar variable @start
(no surprise, as that didn't sound correct).
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…