Stored procedures 显示从SSR到存储过程的参数

Stored procedures 显示从SSR到存储过程的参数,stored-procedures,reporting-services,Stored Procedures,Reporting Services,我有一个从SSRS报告调用的存储过程。存储过程本身工作正常(例如,下面的代码返回预期结果)。报告传入了两个参数,都是DateTime,但这些参数似乎被完全忽略了。如何验证从存储过程中传递到存储过程中的值 在共享数据集中,通过BIDS调用存储过程,如下所示: EXEC reports.[uspMyReport] @StartDate, @EndDate DECLARE @StartDateString VARCHAR(50) SELECT @StartDateString = CAST(@Sta

我有一个从SSRS报告调用的存储过程。存储过程本身工作正常(例如,下面的代码返回预期结果)。报告传入了两个参数,都是
DateTime
,但这些参数似乎被完全忽略了。如何验证从存储过程中传递到存储过程中的值

在共享数据集中,通过BIDS调用存储过程,如下所示:

EXEC reports.[uspMyReport] @StartDate, @EndDate
DECLARE @StartDateString VARCHAR(50)
SELECT @StartDateString = CAST(@StartDate AS VARCHAR)
RAISERROR(N'StartDate: %s', 18, 0, @StartDateString)
RETURN
答:我可以看到已传递到存储过程中的值,如下所示:

EXEC reports.[uspMyReport] @StartDate, @EndDate
DECLARE @StartDateString VARCHAR(50)
SELECT @StartDateString = CAST(@StartDate AS VARCHAR)
RAISERROR(N'StartDate: %s', 18, 0, @StartDateString)
RETURN

有几种方法可以检查参数值达到的程度:

您可能会引发如下所述的错误: 这将验证值是否到达存储过程: 如果没有,storedproc参数可能没有链接到报表参数,您需要配置报表。 如果是这样,最终的select查询不知何故不使用它们,您需要修复storedproc

另一种方法:使用相同的检查不引发错误,而是返回一个可能包含错误信息的虚拟数据集,该错误信息将显示在报告中(可能仅对测试场景有用)


最后,您可以在运行报告之前启动SQL Server profiler,并查看从SSR调用过程的确切方式。这样,您就不必更改过程来调试调用本身。

发布存储过程代码实际上是不可能的,也不会有帮助。上述代码使用有效参数调用存储过程,存储过程工作正常。因此,我认为报告正在传递无效参数(尽管它们在SSRS端看起来不错),我想看看它们在存储过程中是什么。请从SSRS报告中添加SQL命令,以便清楚地知道如何调用该过程。您的第一个建议主要是我想要的。我现在使用RAISEERROR返回输入参数的值。(如上所示)