Saltar al contenido

sp_send_dbmail procedimiento almacenado enviar con datos adjuntos

Intenta entender el código bien previamente a utilizarlo a tu trabajo y si ttienes algo que aportar puedes compartirlo con nosotros.

Solución:

Si aún necesita exportar el archivo y enviarlo como un archivo adjunto, esto también se puede automatizar por completo en SQL Server.

La exportación como CSV se puede lograr a través de BCP. Hay más detalles en esta respuesta, pero la idea principal es:

bcp "SELECT Col1,Col2,Col3 FROM MyDatabase.dbo.MyTable" queryout "D:MyTable.csv" -c -t , -S SERVERNAME -T

A continuación, adjuntaría el archivo al correo electrónico en sp_send_dbmail.

USE msdb;
GO

EXEC sp_send_dbmail 
  @recipients='[email protected]',
  @subject='Client Report',
  @body='Please find your latest report attached',
  @file_attachments='D:MyTable.csv';

Si lo desea, puede adjuntar varios archivos a un correo electrónico.

Sí, puede enviar el informe en formato HTML, por ejemplo, como se indica en MS:

Escenario: este ejemplo envía un mensaje de correo electrónico a Dan Wilson usando la dirección de correo electrónico [email protected] El mensaje tiene el asunto Lista de órdenes de trabajo y contiene un documento HTML que muestra las órdenes de trabajo con fecha de vencimiento inferior a dos días después del 30 de abril de 2004. Correo electrónico de base de datos envía el mensaje en formato HTML.

DECLARE @tableHTML  NVARCHAR(MAX) ;

SET @tableHTML =
    N'

Work Order Report

' + N'' + N'' + N'' + N'' + CAST ( ( SELECT td = wo.WorkOrderID, '', td = p.ProductID, '', td = p.Name, '', td = wo.OrderQty, '', td = wo.DueDate, '', td = (p.ListPrice - p.StandardCost) * wo.OrderQty FROM AdventureWorks2008R2.Production.WorkOrder as wo JOIN AdventureWorks2008R2.Production.Product AS p ON wo.ProductID = p.ProductID WHERE DueDate > '2006-04-30' AND DATEDIFF(dd, '2006-04-30', DueDate) < 2 ORDER BY DueDate ASC, (p.ListPrice - p.StandardCost) * wo.OrderQty DESC FOR XML PATH('tr'), TYPE ) AS NVARCHAR(MAX) ) + N'
Work Order IDProduct IDNameOrder QtyDue DateExpected Revenue
' ; EXEC msdb.dbo.sp_send_dbmail @recipients='[email protected]', @subject = 'Work Order List', @body = @tableHTML, @body_format = 'HTML' ;

Además, puede usar la lectura Enviar correo electrónico con formato HTML en SQL Server usando la tarea SSIS Script

Además, si desea programar un informe HTML, lea esto aquí

Agradecemos que quieras auxiliar nuestra labor exponiendo un comentario y valorándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *