使用 Data Transformation Services (DTS) 進行異構資料遷移前,必須了解不同提供者、驅動程式對資料類型、SQL 陳述式支援的差異。本文彙整核心遷移坑點與最佳實踐。
2147480000 可能轉為 2147480065。避免隱含轉換,必要時用 DECIMAL 中介。yyyy-mm-dd hh:mm:ss.fffffffff 格式。需用 ActiveX 腳本 CDate() 或轉換函式預處理。DBTYPE_DATETIME。| 場景 | 可行性 | 替代方案 |
|---|---|---|
| 多步驟存取 Temp 表 (#temp) | ❌ DTS 設計師/精靈不支援 | 全域 Temp 表 (##temp) 或 tempdb 永久表 |
| 傳回 Temp 表的存儲程序作來源 | ❌ | 改傳回全域 Temp 表或永久表 |
| 轉換/查詢任務中使用 Temp 表 | ❌ 不能作來源 | 同上 |
| 程式碼外部存取 Temp 表 | ✅ 支援 | -- |
text/ntext/image 超過 8,388,602 位元組會**靜默截斷**,僅在指定腳本目錄下的 <Server>.<DB>.log 記錄,不報錯。作為來源時需注意:
- 確認 SNA Server 版本相容性。
- 驗證資料類型對應表 (DB2/主機類型 → SQL Server)。
- 大量資料建議分批、啟用交易日誌備份控制 Log 增長。
DTS 遷移核心在於**「資料類型顯式轉換」、「避開 Temp 表限制」、「預檢截斷風險」**。新專案建議改用 SSIS (SQL Server 2005+),功能更完整、除錯更容易。