首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server DTS 資料轉換與異構遷移核心注意事項:資料類型對應、Temp 表限制、SNA Server 整合

     編輯:MySQL 資料庫相關知識

使用 Data Transformation Services (DTS) 進行異構資料遷移前,必須了解不同提供者、驅動程式對資料類型、SQL 陳述式支援的差異。本文彙整核心遷移坑點與最佳實踐。

資料類型轉換陷阱

  • REAL → INT 精度損失: SQL Server REAL 僅 6 位有效數字,2147480000 可能轉為 2147480065。避免隱含轉換,必要時用 DECIMAL 中介。
  • 文字檔 → DATE/TIME: OLE DB 僅接受 yyyy-mm-dd hh:mm:ss.fffffffff 格式。需用 ActiveX 腳本 CDate() 或轉換函式預處理。
  • SQL Server 不支援 DBTYPE_DATE/DBTYPE_TIME,僅支援 DBTYPE_DATETIME。

Temp 表使用鐵則

場景可行性替代方案
多步驟存取 Temp 表 (#temp)❌ DTS 設計師/精靈不支援全域 Temp 表 (##temp) 或 tempdb 永久表
傳回 Temp 表的存儲程序作來源❌改傳回全域 Temp 表或永久表
轉換/查詢任務中使用 Temp 表❌ 不能作來源同上
程式碼外部存取 Temp 表✅ 支援--

DTS 設計師/匯入匯出精靈限制

  • 同一連接**不能同時作來源與目的地**。
  • 唯讀提供者 (Access、ODBC DSN) 需在連接屬性 → 進階 → Mode=1。
  • 建立目的表時擁有者為當前使用者 (通常 dbo),若同名表已存在會失敗。
  • 資料驅動查詢目的地**必須支援 OLE DB ICommand**,純文字檔不支援。
  • 複製 SQL Server 物件任務:text/ntext/image 超過 8,388,602 位元組會**靜默截斷**,僅在指定腳本目錄下的 <Server>.<DB>.log 記錄,不報錯。

Microsoft SNA Server 整合

作為來源時需注意:
- 確認 SNA Server 版本相容性。
- 驗證資料類型對應表 (DB2/主機類型 → SQL Server)。
- 大量資料建議分批、啟用交易日誌備份控制 Log 增長。

總結

DTS 遷移核心在於**「資料類型顯式轉換」、「避開 Temp 表限制」、「預檢截斷風險」**。新專案建議改用 SSIS (SQL Server 2005+),功能更完整、除錯更容易。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved