數據轉換服務(DTS)在數據庫管理和開發的多種領域都有會涉及DTS:
數據倉庫-將數據從原始的處理系統和表格中提取出來以供報表使用
建立OLAP
將大量數據從文本文件或其它非數據庫格式的文件中拷貝到數據庫
生成Microsoft Office文檔報表
使用 Distributed Transaction Coordinator (DTC)實現多數據庫操作
在客戶的桌面程序或網站上,經常需要允許用戶按需執行DTS包。在這種情況下,在部署DTS包時,你應該決定將DTS包安置在何處,以及通過何種手段調用它。
你的選擇
要建立一個按需執行的DTS包,可以有多種選擇。下面就對這些選擇進行逐一說明。
SQL Server job
你可以在SQL Server裡建立一個job,並調用sp_start_job存儲過程。使用sp_start_job的不足之處在於它是一個異步過程。由於它不能返回成功或失敗指示,你必須強制使用sp_help_job系統存儲過程查詢job的結果。除非不關心job調用後的結果,否則異步的job將使桌面程序或Web程序變得很復雜。一個job可以被設置成非管理員(sa)模式,但需要一些額外的步驟。
在客戶端桌面使用DTS DLLs
第二種方法是用戶電腦載入Enterprise Manager或DTS DLLs,在用戶的電腦上調用DTS包。雖然用戶電腦執行DTS包有一定可行性,但也有不足:必須考慮到升級DTS包帶來的分發和安裝問題。
在服務器上使用sp_OA 擴展存儲過程
第三種選擇,也就是本文所介紹的核心內容,就是使用sp_OA系統存儲過程族並有計劃的調用DTS包。這種方案可以有效的避免上兩種方案的弊端。
使用 VBScript調用DTS包
實現一個可以運行DTS包的存儲過程的第一步是,編寫一段VBScript代碼。因為sp_OA存儲過程使用起來有些麻煩,因此在利用sp_OA存儲過程實現目標之前,要用VBScript編寫你希望實現的代碼。一般傾向於使用Visual Basic進行簡單的腳本開發工作。如圖A所示,通過在項目引用窗口中加入DTS包對象庫,就可以在腳本中引用DTS包對象了。