[英]Query to Stored Procedure for SSRS Report
我使用帶有參數的查詢在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中預覽報告時,我收到“無行”消息。
誰能看到我在創建存儲過程時做錯了什么?
與使用查詢相比,使用存儲過程是否還需要在SSRS中設置不同的參數?
干杯。
更新:將參數放在CREATE和AS之間並刪除DECLARE之后,它在SSRS中可用於特定值,但是當我選擇“ ALL”時,它就不起作用。
有任何想法嗎?
我唯一想到的可能就是參數的位置。 如果有從外部來源傳入的參數,例如用戶在報表服務中輸入參數等,則需要在AS語句之前聲明它們,如下所示:
USE [CRCIVR]
GO
Create Proc dbo.[spFrontTileExceptionsData]
(
@userid as int,
@companyid as int,
@exceptioncodes as varchar
)
AS
Begin
我可以在沒有看到其余代碼的情況下想到所有這些。 這也可能是報表服務本身的功能。
您將要使存儲過程接受輸入參數,以便SSRS將其發送進來。如果在proc中使用DECLARE
參數,則否則會將這些參數“隱藏”到SSRS中。 以您的示例為例:
USE [Some_Database]
GO
CREATE PROCEDURE MyReport
@p_ServerName NVARCHAR(10) = 'all',
@p_Env NVARCHAR(10) = 'all',
@p_EnvCat NVARCHAR(10) = 'all'
AS
SELECT DISTINCT <rest of my query...>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.