我收到一个错误:
将 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
,它将与插入一起使用(尽管它违背了目的)。我试过包括 a SELECT CAST(' + @start + ' AS INT)
,这似乎有点多余,因为@start
它INT
已经是 a (将 an 转换INT
为INT
),但这也不起作用。我还尝试从N'
DYNAMIC-SQL开始,但没有成功,我尝试'''
在所有内容中使用三个(没有工作),在我在线阅读的一些地方,响应建议将变量放入字符串中,这会生成错误:
必须声明标量变量@start
(毫不奇怪,因为这听起来不正确)。