如何解决SSRS中“错误的语法'='”错误?

时间:2013-02-12 00:54:12

标签: sql-server reporting-services ssrs-2008

我在SSRS中遇到以下错误:

An error occurred during local report processing.
An error has occurred during report processing.
Query execution failed for dataset 'Dataset1'.
incorrect syntax near '=' 

在此错误之前,我收到一个错误,抱怨参数顺序(“必须将参数编号3和后续参数传递为'@name = value',在使用表单'@name = value'之后,所有后续参数必须以'@name = value'的形式传递。)..我修改了参数的顺序(基本上我把开始/结束日期放在其他参数之后)。

exec [dbo].[prc_RPT_Select_BI_Completes_Data_View_tst]

@AccountIDs  = NULL,
@ClientIDs  = NULL,
@SupplierIDs  = NULL,
@FromDate = '19001010',      
@ToDate = '19001110',
@CompleteType = NULL,
@SourceType = NULL,
@SurveyStatus = NULL,
@IsSupplierUser = NULL

enter image description here

如何解决此问题?将存储过程的事实。有动态的SQL全部影响这个吗?

另外,当我在SSMS中手动运行时:

exec [dbo].[prc_RPT_Select_BI_Completes_Data_View_tst] '20121010', '20121011', null,null,null,null,null,null 

然后它工作正常。那么它可能与SSRS有关吗?

1 个答案:

答案 0 :(得分:1)

原始错误没有抱怨参数的顺序。相反,它表示(有点神秘)在调用过程时不应混合使用位置参数和命名参数。

现在有两个可能的原因导致新错误:

  1. 你在调用声明中有一个拼写错误。
  2. 你手术中有错字。
  3. 尝试获取发送到数据库的确切语句并在SSMS中手动运行它。这应该告诉你更多。我注意到你在两个例子中使用了不同的参数值。

    如果无法解决此问题,请运行SQL Server Profiler跟踪捕获存储过程语句启动和存储过程语句以及运行报表时的用户错误。在那里你应该能够看到导致错误的确切陈述。