2017-07-14 73 views
2

我目前正在對SSIS包中的錯誤發送電子郵件通知。它目前工作。只是想檢查這是否是正確的做法。 enter image description here使用SSIS發送錯誤電子郵件通知

+0

您是否可以將其安排爲'SQL Server Agent'中的工作? – LONG

+0

確保紅色約束是OR,而不是AND,否則只有在_everything_失敗時纔會發送電子郵件 –

+0

像這樣的問題更適合codereview.stackexchange.com –

回答

0

我認爲這個問題沒有標準答案。但是這裏有一些我能夠想到的技巧。

首先,不是很確定你要發送出去,如果他們沒有動態正文什麼樣的純文本的,你可以把在event handlerssend email task權的Control flow, Data Flow...選項卡,然後把那個on error特定任務。其次,我個人不喜歡使用Failure輸出,您可能需要增加MaximumErrorCount的數量,以便包可以成功執行,但有時真正的錯誤可能不會被檢測到,因爲與錯誤輸出一起,總數錯誤編號仍然小於閾值。第三,如果您發送的是同一文本,並且您將其作爲SQL Server Agent中的作業進行安排,您可以轉到Notifications選項頁面,設置Send Email,基本上它會提供信息。

最後但並非最不重要的,Send Mail task只支持純文本,沒有任何格式,如電子郵件通過html & CSS編碼,如果你需要的格式考慮,可能不會是你的選擇,你可以Script task使用C#使用或者通過使用XML聲明從SSMS創建html頁並放入存儲過程,然後通過Database Mail發送出html,您會在SSMSManagement文件夾中找到此工具。

0

如果您想要在發生任何錯誤時觸發郵件任務,請考慮「事件處理程序」。

這SimpleTask文章提供了事件處理程序 https://www.red-gate.com/simple-talk/sql/ssis/ssis-event-handlers-basics/

的一個很好的概述

SSIS事件處理程序打開的SSIS腳本到一個可靠的系統,該系統可審覈的最簡單的方法,反應適當地對錯誤條件,報告進展並允許檢測和監測您的SSIS包。它們很容易實現,並提供很大的靈活性。

樣品屏幕截圖: enter image description here

使用事件處理提供了一些好處 - 你不必連接每個任務的失敗。系統會調用您的事件處理程序來查找錯誤。

另外,還要注意有感興趣2個事件處理程序: 的OnError

OnTaskFailed

https://docs.microsoft.com/en-us/sql/integration-services/integration-services-ssis-event-handlers

OnError事件 - 發生錯誤時將引發此事件。

OnTaskFailed事件 - 該事件在任務失敗時引發。

需要注意的一件事是,根據錯誤的數量,您可能會多次調用事件處理函數。

相關問題