SSIS-將轉檔的過程寫記錄(Log)下來

SSIS-將轉檔的過程寫記錄(Log)下來

 

在ssis中有提供不錯的工具,可以將你在轉檔過程中記錄儲存下來,以便以後可以查詢,怎麼做呢?

首先我們在ssis中拉一個指令碼工作

clip_image001

這個控制項並不是一定要的,只是我們要demo由我們自己寫進去的log文字,所以我用指令碼工作來寫

進入到指令碼工作的編輯畫面,輸入

Dts.Log("丫德測試的log:" & Now.ToString(), 999, Nothing)

clip_image002

儲存後回到”控制流程”畫面

然後在功能上有個ssis選項,點選”記錄”

clip_image003

接下來我選擇”Sql Server的SSIS記錄提供者”,這個項目,把log寫到db中

當然他還有其他選項可以記錄,你可以同時寫到多個目的地

例如我同時寫到db及文字檔及xml及windows event中

clip_image004

然後點選加入

clip_image005

在組態的地方,挑選資料來源,這個地方是來自於”連接管理員”,所以記得要設定,你要將log的table寫在那個db中,不然可是會找不到

clip_image006

clip_image007

clip_image008

切換到”詳細資料”頁,預設是全選,當然你也可以選擇你想要記錄的事件,例如我們只需要記錄”OnError”事件即可的話,那其他的就不用勾選啦,免得看的眼花瞭亂

clip_image009

其實這裡預設是記錄這個dtsx執行的結果都log下來,包含內含的控制項所有的事件,例如啟動,結束等..,當然你也可以不對整個dtsx做log,只單純針對某個控制項做log,如下圖,這樣也可以

clip_image010

不過本次範例就先用預設的方式全部都記錄吧

好了,來執行看看囉!

clip_image011

成功了,回到ssms的查詢sql畫面

再來先說明一下,如果你是使用ssis 2008做轉檔log 的話,table檔名是dbo.sysssislog,且是放在…,該db中的系統資料表哦,別找錯了

clip_image012

如果是用ssis 2005做轉檔log的話,則table的名稱是dbo.sysdtslog90

clip_image013

可是其內容的欄位都是一樣的,沒什麼不同

下sql查詢一下吧

用sql server 2008的話,就下

select * from sysssislog

用sql server 2005的話,就下

select * from sysdtslog90

clip_image014

欄位太長了,再下一個畫面,有看了嗎?在datacode這個欄位中的999就是我剛才在ssis的指令碼工作所寫的code

clip_image015

至於寫完了log後,後續的應用就看各位如何應用囉!

‧覺得文章不錯請給我一個『讚』作為鼓勵喔!