Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

email database con allegato (file excel / file pdf)?

Questo allegherà il risultato della tua query come CSV, basta cambiarlo in nomefile.xls se preferisci quel formato. Penso che CSV funzioni meglio, con Excel potresti ricevere un avviso che dice che il file è in un formato diverso da quello specificato dall'estensione.

Inoltre ho usato CHAR(9) o TAB per il separatore dei risultati della query, puoi cambiarlo in qualsiasi cosa funzioni per te.

Ho anche aggiunto SET NOCOUNT ON alla tua query, se non lo hai otterrai (1000 righe interessate) (qualunque sia il numero di righe restituite dalla tua query) alla fine del tuo file 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