我有一个SSRS数据集查询,带有一个名为BENEFIT的单值参数。我的数据源是SQL SERVER 2014:以下查询给出错误“ERROR [42000] [Microsoft] [SQL Server Native Client 10.0] [SQL Server]必须声明标量变量“@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

请注意“通过OleDbCommand或OdbcCommand使用参数”部分。

10-07 17:33