sql >> Base de Datos >  >> RDS >> Sqlserver

correo electrónico de la base de datos con archivo adjunto (archivo excel/archivo pdf)?

Esto adjuntará el resultado de su consulta como un csv, simplemente cámbielo a filename.xls si prefiere ese formato. Creo que csv funciona mejor, con Excel puede recibir una advertencia que dice que el archivo está en un formato diferente al especificado por la extensión.

También usé CHAR(9) o TAB para el separador de resultados de la consulta, puede cambiarlo a lo que funcione para usted.

También agregué SET NOCOUNT ON a su consulta, si no tiene eso, obtendrá (1000 filas afectadas) (cualquiera que sea la cantidad de filas que devuelva su consulta) al final de su archivo de 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