在动态sql上执行计算

时间:2018-02-15 19:15:04

标签: sql sql-server

为什么出现以下错误?似乎SQL服务器无法识别 - 动态sql上的运算符

DECLARE @value INT;
SELECT @value = 10;
EXEC ('SELECT ' + @value -1 );

2 个答案:

答案 0 :(得分:2)

不。您应该在运行之前设置语句。我建议:

DECLARE @value INT;
DECLARE @sql NVARCHAR(MAX);
SET @SQL = 'SELECT @value - 1';

SELECT @value = 10;

EXEC sp_executesql @sql, N'@value int', @value = @value ;

这使用参数,因此运行查询是一种更明智的方法。

答案 1 :(得分:0)

这有效:

DECLARE @value INT;
SELECT @value = 10;
EXEC ('SELECT ' + @value +' -1 ');