Sql-Server

sp_send_dbmail 儲存過程發送帶附件

  • July 1, 2019

我的任務是為我的一位客戶發送一份小的月度報告。該報告之前已在實例上手動執行,輸出複製到電子表格並作為附件發送給客戶。

我正在尋找更持久的解決方案,因此我打算使用sp_send_dbmail儲存過程來執行查詢並將其作為附件發送。

一切正常,但消息的格式。最初,我嘗試將輸出作為 CSV 文件附加,@query_result_seperator = ','但結果無處不在!

當我正常執行報表時,SQL 中的輸出看起來很好。但將其作為 CSV 或僅在消息正文中發送不會。

我認為如果我將輸出導出為 HTML 並將其作為附件/或作為 XML 發送,它可能會更好,但我不知道該怎麼做。

有沒有人有什麼建議?

提前致謝!

如果您仍需要導出文件並將其作為附件發送,這也可以在 SQL Server 中完全自動化。

導出為 CSV 可以通過BCP實現。此答案中有更多詳細資訊,但主要思想是:

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

然後,您將文件附加到電子郵件中sp_send_dbmail

USE msdb;
GO

EXEC sp_send_dbmail 
 @recipients='mark@mark.com',
 @subject='Client Report',
 @body='Please find your latest report attached',
 @file_attachments='D:\MyTable.csv';

如果需要,您可以將多個文件附加到一封電子郵件

引用自:https://dba.stackexchange.com/questions/99326