Microsoft OLE DB Provider for SQL Server, 或 \t (與導出一致)utf8mb4 (防亂碼)FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\\\' LINES TERMINATED BY '\r\n'staging_xxx 結構與文本完全一致 → 導入INSERT INTO target SELECT ... FROM staging_xxx (列名顯式映射)| 問題 | 原因 | 解決 |
|---|---|---|
| 導入行數少於導出 | 行終止符不匹配 (CRLF vs LF)、引號未轉義 | 統一 LINES TERMINATED BY '\r\n';ESCAPED BY '\\\\' |
| 數據截斷/報錯 | 目標列長度不足、類型不兼容 (如 ntext→VARCHAR) | 預調整目標表結構:TEXT/LONGTEXT/BLOB |
| 自增主鍵衝突 | 導入數據含 ID,目標表 AUTO_INCREMENT 衝突 | 導入前 SET FOREIGN_KEY_CHECKS=0; ALTER TABLE t AUTO_INCREMENT=1; 或導出時排除 ID 列 |
| 編碼亂碼 | SQL Server Unicode,MySQL latin1 默認 | 全鏈路 utf8mb4:DSN、表、連接、文件編碼 |
| 大文件導入超時 | phpMyAdmin 上傳限制 (upload_max_filesize/memory_limit) | 命令行 LOAD DATA LOCAL INFILE;或分割文件 split -l 100000 |
DTS + 文本 + LOAD DATA 是 Windows 早期異構遷移的「萬金油」組合,**免代碼、可視化、易調試**,但對編碼、分隔符、類型映射極度敏感。生產遷移建議:小表走圖形化驗證流程,大表走命令行並行工具,全量驗證用 Checksum/行數/抽樣三重保障。