【问题标题】:How to resolve an "incorrect syntax near '=' " error in SSRS?如何解决 SSRS 中的“'=' 附近的语法错误”错误?
【发布时间】:2013-02-13 10:28:10
【问题描述】:

我在 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

我该如何解决这个问题?将存储过程的事实。整个过程中的动态 sql 都会对此产生影响吗?

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

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

然后它工作正常。所以它可能与SSRS有关?

【问题讨论】:

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


    【解决方案1】:

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

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

    1. 调用语句中有错字。
    2. 您的程序本身有错字。

    尝试获取发送到数据库的确切语句并在 SSMS 中手动运行它。那应该告诉你更多。我确实注意到您在两个示例中使用了不同的参数值。

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

    【讨论】:

    • 当你说You have a type in the calling statement. - 你的意思是“错字”吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    相关资源
    最近更新 更多