Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

e-mail de base de données avec pièce jointe (fichier excel / fichier pdf) ?

Cela joindra le résultat de votre requête en tant que csv, changez-le simplement en filename.xls si vous préférez ce format. Je pense que csv fonctionne mieux, avec Excel, vous pourriez recevoir un avertissement indiquant que le fichier est dans un format différent de celui spécifié par l'extension.

J'ai également utilisé CHAR(9) ou TAB pour le séparateur de résultat de la requête, vous pouvez le remplacer par ce qui vous convient.

J'ai également ajouté SET NOCOUNT ON à votre requête, si vous ne l'avez pas, vous obtiendrez (1000 lignes affectées) (quel que soit le nombre de lignes renvoyées par votre requête) à la fin de votre fichier 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