显示从SSRS到存储过程的参数

时间:2013-12-06 20:41:31

标签: stored-procedures reporting-services

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

USE [MyDatabase]
GO
DECLARE @return_value int
EXEC    @return_value = [reports].[uspMyReport]
        @StartDate = N'3/15/2013',
        @EndDate = N'3/16/2013'

SELECT  'Return Value' = @return_value
GO

从BIDS开始,在共享数据集中,像这样调用sproc:

EXEC reports.[uspMyReport] @StartDate, @EndDate

答案:我可以看到传递给存储过程的值,如下所示:

DECLARE @StartDateString VARCHAR(50)
SELECT @StartDateString = CAST(@StartDate AS VARCHAR)
RAISERROR(N'StartDate: %s', 18, 0, @StartDateString)
RETURN

1 个答案:

答案 0 :(得分:1)

有几种方法可以检查参数值的范围:

您可以按照此处所述引发错误: The "right" way to do stored procedure parameter validation 这将验证值是否到达存储过程: 如果不这样做,则storedproc参数可能未链接到Report参数,您需要配置报告。 如果他们这样做,最终选择查询以某种方式不使用它们,您需要修复storedproc。

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

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