Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

e-mail do banco de dados com anexo (arquivo excel/arquivo pdf)?


Isso anexará o resultado da consulta como um csv, basta alterá-lo para filename.xls se você preferir esse formato. Acho que o csv funciona melhor, com o Excel você pode receber um aviso dizendo que o arquivo está em um formato diferente do especificado pela extensão.

Também usei CHAR(9) ou TAB para o separador de resultados da consulta, você pode alterar isso para o que funcionar para você.

Eu também adicionei SET NOCOUNT ON à sua consulta, se você não tiver isso, você obterá (1000 linhas afetadas) (qualquer número de linhas que sua consulta retornar) no final do seu arquivo do Excel.
DECLARE
    @tab char(1) = CHAR(9)

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'Adventure Works Administrator',
    @recipients = '[email protected]',
    @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',
    @[email protected],
    @query_result_no_padding=1