DTS(Data Transformation Services)是 SQL Server 7.0/2000 時代核心 ETL 平台,雖已被 SSIS 取代,但其架構思想仍具參考價值。本文系統梳理 DTS 核心概念、物件模型、任務類型與執行流程。
Package (包/包裹) ── 頂層容器,存儲步驟、連線、任務、全域變數
├── Connection (連線) ── 定義源/目標數據源屬性(伺服器、資料庫、檔案、UDL、認證)
├── Task (任務) ── 工作單元,執行具體操作
│ ├── Execute SQL Task
│ ├── Data Pump Task (核心:源→轉換→目標)
│ ├── ActiveX Script Task (VBScript/JScript)
│ ├── Execute Process Task (外部程式)
│ ├── Bulk Insert Task (BCP)
│ ├── Send Mail Task
│ ├── Data Driven Query Task (高級行級轉換)
│ └── Transfer SQL Server Objects Task (架構同步)
└── Step (步驟) ── 定義任務執行順序與優先權約束
├── 完成 (Completion) ── 無視成敗執行下一步
├── 成功 (Success) ── 僅前步成功才執行
└── 失敗 (Failure) ── 僅前步失敗才執行
| 類型 | 用途 | 典型提供者 |
|---|---|---|
| 數據源連線 | OLE DB 數據源(關係型資料庫) | SQLOLEDB, OraOLEDB, MSDASQL(ODBC) |
| 檔案連線 | 文本、CSV、Excel 等平面檔案 | Microsoft Jet, Text ODBC |
| Microsoft 數據連線 | 載入 *.udl 檔或配置 OLE DB 屬性 | 通用連線字串管理 |
msdb 資料庫 (sysdtspackages)、Microsoft Repository。dtsrun 命令列、DTS Designer、導入導出向導、SQL Server Agent 作業、COM 應用呼叫 Execute 方法。內建「轉換 SQL Server 物件任務」僅支援表定義與數據複製。若需傳遞索引、約束、視圖、預存程序,必須在目標庫建立「執行 SQL 任務」運行對應 DDL 腳本。