Sql-Server
如何從 SQL 作業發送包含多個選擇語句結果的電子郵件
我想創建一個 SQL 作業並發送包含多個選擇語句的電子郵件,包括查詢結果。是否可以使用 SQL Job 或者我應該使用 SSIS?
編輯1:
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Adventure Works Administrator', @recipients = '****@abc.com', @Execute_query_database = 'AdventureWorks', @query = 'SELECT COUNT(*) FROM AdventureWorks.Production.WorkOrder WHERE DueDate > '2018-03-30' AND DATEDIFF(dd, '2004-04-30', DueDate) < 2 SELECT * FROM NorthWind.Production.Work WHERE DueDate > '2018-04-30' ' , @subject = 'Work Order Count', @attach_query_result_as_file = 1 ;
錯誤消息:文件附件或查詢結果大小超出允許值 1000000 字節。
編輯 2:我覺得 SQL 代理作業沒有指向所需的數據庫,並且 sp_send_email 沒有數據庫名稱。所以我添加了
@Execute_query_database = 'AdventureWorks'
但仍然沒有改進,因為在 SQL SELECTS 中使用了兩個不同的數據庫。有什麼想法嗎?
您基本上是從最大的 sql server 發送 1GB 文件。您可以使用重新配置預設值
exec msdb.dbo.sysmail_configure_sp ‘MaxFileSize’,‘2000000’– 2GB
我會說,使用 bcp 輸出文件,使用 zip 或 7zip 壓縮它,然後使用 powershell 或 ssis 發送。
要回答您的問題,您的查詢中可能有許多選擇語句,我不知道數量的限制。
您的第一個查詢將毫無問題地執行,但您的第二個查詢正在創建一個大於您的設置允許的結果集,因此它不會發送,我同意@kin 的觀點,您最好將結果保存在某處,然後通過電子郵件發送連結。作為獎勵,您的網路管理員也會更快樂!