[英]Data Driven Subscriptions SSRS Standard Edition 2008
我對 MSSQL 和 SSRS 還很陌生。
我正在嘗試在執行以下操作的 MSSQL 2008 標准 SSRS 中創建數據驅動訂閱。
將報告結果通過電子郵件發送到報告中找到的電子郵件地址。 每天跑步
例如:
Select full_name, email_address from users where (full_name = 'Mark Price')
這將使用 email_address 列來確定向誰發送電子郵件,這也必須適用於具有多個電子郵件地址的多個結果。
我正在考慮這樣做的方式是訂閱運行查詢,如果沒有找到結果,那么什么也不會發生。 但是,如果找到結果,則報告會更改訂閱表中的行,以在下一分鍾左右再次運行報告,並在結果中找到正確的電子郵件信息。 這是一個愚蠢的想法嗎?
我發現了幾篇博文聲稱這是有效的,但我無法理解他們的代碼,無法知道它的作用。
那么,關於如何解決這個問題的任何建議,或者您是否可以建議一些已經在互聯網上提供的簡短描述?
我已經在 SQL Server Standard 上實現了這樣的東西,以避免為 Enterprise 付費。 首先,我構建了一個名為“Schedule a DDR”(數據驅動報告)的報告。 該報告具有以下參數:
要計划的報告:滿足數據測試時要觸發的 SSRS 報告(包括文件夾)的名稱。 例如“/Accounting/Report1”。
參數集:將用於查找要在報告中使用的參數的字符串。 例如“ABC”。
檢查是否應運行報告的查詢:將返回單個值(零或非零)的 SQL 查詢。 零將被解釋為“不運行此報告”
電子郵件收件人:以分號分隔的電子郵件收件人列表,這些收件人將收到報告(如果運行)。
請注意,“安排 DDR”報告是我們在此處實際運行的報告,它會將其輸出發送給我; 它的作用是運行另一個報告——在本例中它是“/Accounting/Report1”,它是需要這些電子郵件地址的報告。 因此,“計划 DDR”並不是真正的報告,盡管它是按計划進行並運行的——它是一個構建和運行報告的小工具。
我在 SQL 中還有一個表定義如下:
CREATE TABLE [dbo].[ParameterSet](
[ID] [varchar](50) NULL,
[ParameterName] [varchar](50) NULL,
[Value] [varchar](2000) NULL
) ON [PRIMARY]
每個參數集——在本例中為“ABC”——在表中都有一組記錄。 在這種情況下,記錄可能是 ABC/placecode/AA 和 ABC/year/2013,這意味着 ABC 中有兩個參數:placecode 和 year,它們的值分別為“AA”和“2013”。
SSRS 中“安排 DDR”報告的數據集是
DDR.dbo.DDR3 @reportName, @parameterSet, @nonZeroQuery, @toEmail;
DDR3 是一個存儲過程:
CREATE PROCEDURE [dbo].[DDR3]
@reportName nvarchar(200),
@parameterSet nvarchar(200),
@nonZeroQuery nvarchar(2000),
@toEmail nvarchar(2000)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select ddr.dbo.RunADDR(@reportName,@parameterSet,@nonZeroQuery,@toEmail) as DDRresult;
END
RunADDR 是一個 CLR。 這是它如何工作的概述; 如果有人需要,我可以發布一些代碼。
這讓我回到了我的舊工作,在那里我使用 SQL Server 2005 Enterprise 開發盒上的數據驅動訂閱編寫了一個問題的解決方案,然后我沮喪地發現我們的客戶只有標准版。
我當時為這篇文章添加了書簽,它看起來非常有前途,但在我有機會實施它之前,我最終換了工作。
當然,它是針對 2005 年的,但其中一條評論似乎表明它在 2008 年也有效。
R-Tag支持 SQL Server 標准版的 SSRS 數據驅動報告
您可以使用第三方解決方案 SQL-RD 來創建和運行數據驅動的計划,而無需升級到 SQL 企業。 它還帶有基於事件的調度(觸發事件報告,包括數據庫更改、文件更改、收到的電子郵件等)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.