2010-11-23 8 views
0

レポートにデータがなくても、SSRSがスケジュールされたレポート電子メールを送信するという事実を回避しようとしています。 ReportExecution2005を使用してレポートを実行(レンダリング)した後、行数が0より大きい場合は電子メールを送信できると考えました。これは可能ですか?ReportExecution2005 - レンダリングされたレポートの行数を取得できますか?

答えて

2

最初に私はレポートを公開しました。その後、1回だけサブスクリプションを作成しました。それが完了したら、私はそのレポート購読の仕事の名前をつかんだ。レコード数をチェックしたストアドプロシージャを作成し、レコードが検出された場合は、msdb..sp_start_job @ job_name = ''を実行して、私と技術サポートスタッフに電子メールを送りました。つまり、一言で言えば、レコードが検出された場合に限り、通知されます。

DECLARE @cnt smallint 

SELECT @cnt = COUNT(FieldName) FROM TableName 

IF (@cnt) > 0 

BEGIN 

    exec msdb..sp_start_job @Job_Name = 'E1F4B93A-8578-490D-BD15-3C989C3BE4F3' 

END 

ELSE 

BEGIN 

PRINT 'No Records Found!' 

END 

ここに、適切なジョブ名を取得するのに役立つクエリを持つ自分の投稿へのリンクがあります。 2005年の& 2008で動作しますが、名前付きインスタンスを使用する場合は変更する必要があります。 http://ayesamson.com/category/sql-server/2008/reporting-services-2008/subscriptions/

希望します。 SQL Server 2005の標準版を使用します。& 2008/R2

関連する問題