[MSSQL] SSIS 透過指令碼工作寄發信件

續 《SQL Server Agent 排程自動化更新不同 Server 上的資料表》,本篇重點在於透過指令碼工作,實作寄發信件

Shan
C.Shan
May 4, 2021

--

這裡使用指令碼工作元件,即是寫一段程式碼,實作寄發 email。

加入指令碼工作元件
點選右鍵,編輯指令碼工作
點選編輯指令碼

在指令碼工作編輯器中,點選編輯指令碼,會出現新的專案。在 ScripMain.cs 裡,實作以下程式碼片段:

在指令碼工作中,使用 Dts 物件中的 Variables 屬性,能存取在封裝中定義的變數 (在指令碼工作中使用變數)。另外,可以透過 Log 方法,紀錄事件資訊 (在指令碼工作中記錄)。

封裝中定義的變數,如下圖,在這篇 Set a parameter in SSIS 提過的步驟。

設定變數

當封裝中的變數設定好之後,點選指令碼工作編輯器,在 ReadOnlyVariables 中,選擇指令碼工作能夠存取的變數,便能在程式碼中,透過 Dts 物件中的 Variables 屬性存取變數。

ReadOnlyVarialbes 選取變數

執行指令碼工作測試,我們可以在 ScripMain.cs 裡,下中斷點, Debug 起來很方便!

指令碼工作測試

為什麼這裡不是透過傳送郵件工作寄發信件?

傳送郵件工作的 SmtpConnection 設定中,只提供匿名或 Windows 驗證。如需用帳號密碼驗證的話,必須自行以指令碼工作實作。請參閱: How Can I Specify Credentials for Simple Authentication in SSIS SMTP Connection Manager?

SMTP 連線管理員編輯碼中,只提供匿名或 Windows 驗證

系列文

--

--

Shan
C.Shan
Editor for

過去學習機械理論,現在撰寫網頁程式。我喜歡唱歌,喜歡畫畫,喜歡旅遊,存在藝術的感性,也兼具工程師的理性。腦容量87%,未來期望用文字、影像紀錄經歷。