2017-10-18 93 views
0

我不认为有一个简单的方法来做到这一点,但这里。tsql导出并将SSRS报告附加到电子邮件?

我们有一个SSRS报告可以被调用http://MyServer/ReportServer/Pages/ReportViewer.aspx?%2fSales%2fSalesReport

我们还可以使用数据库邮件发送我们的电子邮件,所以代码如下所示:

EXEC msdb.dbo.sp_send_dbmail  
@profile_name = 'Joe Smith',  
@recipients = '[email protected]',  
@subject = 'Daily Sales',  
@body = 'Some HTML',  
@body_format = 'HTML' ;  

只使用TSQL,可我莫名其妙将Excel作为发送邮件的附件?

可以使用http://MyServer/ReportServer?%2fSaless%2fSalesReport&rs:Command=Excel在本地查看Excel,但我不确定如何将它作为附件包含在内。

谢谢。

+1

您可以使用'@ file_attachments ='c:\ myFile.xlsx''使用sp_send_mail发送文件附件,但我认为您不能直接从T-SQL执行报告。您可以查看订阅以直接向收件人解决此问题,或者安排报告将Excel文件转储到特定位置,然后您的T-SQL sp_send_mail命令将使用该固定网络文件名作为附件。 –

回答

0

那么,只使用TSQL,你会删除此问题的SSRS部分。不要使用SSRS报告,只需直接调用代码并通过@attach_query_result_as_file parameter使用sp_send_dbmail中的结果。如果您的SSRS报告正在格式化您的结果,并且因此您要使用SSRS报告,那么您可以安排此报告运行并将文件共享中的xls放在您的SQL Server可以访问的文件共享中,并使用@file_attachments参数的sp_send_db_mail

+1

很高兴看到有人认为我和我一样......但是更快30秒:) –

+0

从外表看,你的速度快了30秒@AlanSchofield – scsimon