Sql-Server
sp_send_dbmail 儲存過程發送帶附件
我的任務是為我的一位客戶發送一份小的月度報告。該報告之前已在實例上手動執行,輸出複製到電子表格並作為附件發送給客戶。
我正在尋找更持久的解決方案,因此我打算使用
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';
如果需要,您可以將多個文件附加到一封電子郵件。