【发布时间】:2014-07-18 05:39:06
【问题描述】:
我使用带参数的查询在 SSRS 中创建了一个报告,它运行良好。但我决定改用存储过程,这样如果需要任何更改,只需将其应用于 SSMS,而不需要同时应用于 SSMS 和 SSRS 中的查询。
所以我创建了一个如下所示的存储过程:
USE [Some_Database]
GO
CREATE PROCEDURE MyReport
AS
DECLARE @p_ServerName nvarchar(10) = 'all'
DECLARE @p_Env nvarchar(10) = 'all'
DECLARE @p_EnvCat nvarchar(10) = 'all'
SELECT DISTINCT <rest of my query...>
这是一个大大缩短的版本,但关键字的顺序是准确的。当我在 SSRS 中预览报告时,我会收到 No Rows 消息。
谁能看到我在创建存储过程时做错了什么?
与使用查询相比,使用存储过程是否需要在 SSRS 中设置不同的参数?
干杯。
更新:在 CREATE 和 AS 之间放置参数并删除 DECLARE 后,它在 SSRS 中适用于特定值,但当我选择“ALL”时它不起作用。
有什么想法吗?
【问题讨论】:
-
您是否打算将它们作为输入变量?
-
是的,我正在使用这些参数。当我在 SSRS 中使用查询时它起作用了
标签: sql sql-server tsql stored-procedures reporting-services