我有一个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使用参数”部分。