cgs*_*ari 4 sql-server sql-server-2005 sql-server-2008
我要将数据库中的邮件发送到带有附件的mail-id.
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Adventure Works Administrator',
@recipients = 'danw@Adventure-Works.com',
@query = 'SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder
WHERE DueDate > ''2004-04-30''
AND DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,
@subject = 'Work Order Count',
@attach_query_result_as_file = 1 ;
Run Code Online (Sandbox Code Playgroud)
从这段代码我得到txt文件的结果.但我想在pdf文件或excel文件中获取查询结果
任何人都知道的意思请与我分享.
提前谢谢!:)
Fra*_*ank 13
这会将您的查询结果作为csv附加,如果您更喜欢该格式,只需将其更改为filename.xls.我认为csv工作得更好,使用excel你可能会收到一个警告,说文件的格式与扩展名指定的格式不同.
此外,我使用CHAR(9)或TAB作为查询结果分隔符,您可以将其更改为适合您的任何内容.
我还在您的查询中添加了SET NOCOUNT ON,如果您没有在excel文件的末尾获得(受影响的1000行)(查询返回的行数).
DECLARE
@tab char(1) = CHAR(9)
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Adventure Works Administrator',
@recipients = 'danw@Adventure-Works.com',
@query = 'SET NOCOUNT ON
SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder
WHERE DueDate > ''2004-04-30''
AND DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,
@subject = 'Work Order Count',
@attach_query_result_as_file = 1,
@query_attachment_filename='filename.csv',
@query_result_separator=@tab,
@query_result_no_padding=1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38945 次 |
最近记录: |