使用 ODBC 连接到 SQL 服务器时,SSRS 错误必须声明标量变量

SSRS error must declare scalar variable when using ODBC connection to SQL SERVER

我有一个 SSRS 数据集查询,其中包含一个名为 BENEFIT 的单值参数。我的数据源是 SQL SERVER 2014:以下查询给出了错误 "ERROR [42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]Must declare the scalar variable "@BENEFIT”。

SELECT  c.BENEFIT  FROM  CLAIM AS c
WHERE c.DOWNLOAD_DATE > '20150701' AND c.BENEFIT = (@ BENEFIT)

错误仅在使用 ODBC 连接时存在,使用直接连接时消失。如果没有参数,查询将使用任一连接方法正确解析。

任何想法表示赞赏。

谢谢, 阿拉斯代尔

ODBC 不支持命名参数,所以尝试将参数名称更改为 ?:

SELECT c.BENEFIT FROM CLAIM AS c WHERE c.DOWNLOAD_DATE > '20150701' AND c.BENEFIT = ?

这里有更多信息:https://msdn.microsoft.com/en-us/library/yy6y35y8(v=vs.90).aspx

注意"Using Parameters with an OleDbCommand or OdbcCommand."

部分

SET NOCOUNT ON 在查询之前,如果您在查询中声明变量,则在查询之后 SET NOCOUNT OFF。如果变量在查询之外声明,则使用 ? 作为 PicoDeGallo 所述。