在ssis中有提供不錯的工具,可以將你在轉檔過程中記錄儲存下來,以便以後可以查詢,怎麼做呢?
首先我們在ssis中拉一個指令碼工作
這個控制項並不是一定要的,只是我們要demo由我們自己寫進去的log文字,所以我用指令碼工作來寫
進入到指令碼工作的編輯畫面,輸入
Dts.Log("丫德測試的log:" & Now.ToString(), 999, Nothing)
儲存後回到”控制流程”畫面
然後在功能上有個ssis選項,點選”記錄”
接下來我選擇”Sql Server的SSIS記錄提供者”,這個項目,把log寫到db中
當然他還有其他選項可以記錄,你可以同時寫到多個目的地
例如我同時寫到db及文字檔及xml及windows event中
然後點選加入
在組態的地方,挑選資料來源,這個地方是來自於”連接管理員”,所以記得要設定,你要將log的table寫在那個db中,不然可是會找不到
切換到”詳細資料”頁,預設是全選,當然你也可以選擇你想要記錄的事件,例如我們只需要記錄”OnError”事件即可的話,那其他的就不用勾選啦,免得看的眼花瞭亂
其實這裡預設是記錄這個dtsx執行的結果都log下來,包含內含的控制項所有的事件,例如啟動,結束等..,當然你也可以不對整個dtsx做log,只單純針對某個控制項做log,如下圖,這樣也可以
不過本次範例就先用預設的方式全部都記錄吧
好了,來執行看看囉!
成功了,回到ssms的查詢sql畫面
再來先說明一下,如果你是使用ssis 2008做轉檔log 的話,table檔名是dbo.sysssislog,且是放在…,該db中的系統資料表哦,別找錯了
如果是用ssis 2005做轉檔log的話,則table的名稱是dbo.sysdtslog90
可是其內容的欄位都是一樣的,沒什麼不同
下sql查詢一下吧
用sql server 2008的話,就下
select * from sysssislog
用sql server 2005的話,就下
select * from sysdtslog90
欄位太長了,再下一個畫面,有看了嗎?在datacode這個欄位中的999就是我剛才在ssis的指令碼工作所寫的code
至於寫完了log後,後續的應用就看各位如何應用囉!
留言列表