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'Work Order ID Product ID ' +
N'Name Order Qty Due Date ' +
N'Expected Revenue ' +
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'
' ;
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.