T-SQL:尝试将查询的输出保存到变量时,“必须声明标量变量”

Android开发人员

销售表:

Product varchar(20),
Month varchar(20),
Value int

这是我正在尝试做的事情:

declare @Result int
exec('SELECT @Result = SUM(Value) FROM Sale WHERE Product = ''' + @somevar + ''' AND Month = ''' + @othervar + ''' GROUP BY Product')

这就是我得到的: Must declare the scalar variable "@Result".

为什么?我在某些教程中看到了非常相似的代码,并且显然可以正常工作……我不知道这里出了什么问题,请帮忙。

马丁·史密斯

问题是变量不在范围内 EXEC

您不需要SQL注入倾向的动态SQL GROUP BY

    SELECT @Result = SUM(Value)
    FROM   Sale
    WHERE  Product = @somevar
           AND Month = @othervar

如果,为什么你需要动态SQL,那么你应该使用一些合法的理由sp_executesql和参数。

DECLARE @Nsql   NVARCHAR(MAX),
        @Result INT;

SET @Nsql = N'SELECT @Result = SUM(Value)
FROM   Sale
WHERE  Product = @somevar
       AND Month = @othervar'

EXEC sp_executesql
  @Nsql,
  N'@somevar VARCHAR(50), @othervar INT,@Result INT OUTPUT',
  @somevar= @somevar,
  @othervar=@othervar,
  @Result = @Result OUTPUT; 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在T-SQL中使用内存表时出现错误“必须声明标量变量”

来自分类Dev

SQL Server:必须声明标量变量

来自分类Dev

必须声明标量变量(SQL)

来自分类Dev

必须声明标量变量-SQL Server

来自分类Dev

SQL - 必须声明标量变量错误

来自分类Dev

SQL 错误 - 必须声明标量变量

来自分类Dev

SQL错误:将表参数传递给表值函数时,“必须声明标量变量”

来自分类Dev

SQL错误:将表参数传递给表值函数时,“必须声明标量变量”

来自分类Dev

必须声明标量变量

来自分类Dev

必须声明标量变量“ @”

来自分类Dev

必须声明标量变量@

来自分类Dev

必须声明标量变量

来自分类Dev

必须声明标量变量

来自分类Dev

必须声明标量变量

来自分类Dev

必须声明标量变量

来自分类Dev

必须声明标量变量

来自分类Dev

我不能在 SQL 查询中使用变量 Msg 137 必须声明标量变量

来自分类Dev

声明标量变量SQL

来自分类Dev

将表值参数传递给参数化SQL语句时,“必须声明标量变量”错误

来自分类Dev

sql数据库错误“必须声明标量变量”

来自分类Dev

C#SqlDataAdapter必须声明标量变量Sql Exception

来自分类Dev

SQL错误:必须声明一个标量变量

来自分类Dev

必须声明标量变量?Microsoft SQL服务器

来自分类Dev

必须声明标量变量 - 用于填充 DataGridView 的 SQL 参数

来自分类Dev

必须声明标量变量表

来自分类Dev

SQLFiddle:必须声明标量变量错误

来自分类Dev

必须声明标量变量bcp错误

来自分类Dev

必须声明标量变量“ @Brand”

来自分类Dev

必须声明标量变量错误