前置準備
- 下載安裝 MySQL Connector/ODBC(如
mysql-connector-odbc-3.51.xx-win32.msi)。
- 控制台 → 系統管理工具 → ODBC 資料來源 (32/64-bit 依 Office 位元) → 使用者 DSN → 新增 → MySQL ODBC 3.51 Driver。
ODBC 設定關鍵點
| 分頁 | 欄位 | 說明 |
| Login | Data Source Name | 自訂,如 MySQLDNS |
| Login | Server / User / Password | MySQL 連線資訊 |
| Login | Database | 選擇要遷移的預設資料庫 |
| Connect Options | Port | 預設 3306 |
| Connect Options | Character Set | 必須與 MySQL 伺服器一致(如 gbk/utf8),否則匯入出現亂碼/問號 |
SQL Server 匯入精靈
- 企業管理器 → 右鍵資料庫 → 所有工作 → 匯入資料。
- 資料來源選 Other (ODBC) → 選擇
MySQLDNS。
- 目的地選 Microsoft OLE DB Provider for SQL Server → 目標資料庫。
- 依精靈完成欄位對應、型別轉換(注意
TEXT→NVARCHAR(MAX)、DATETIME 精度差異)。
- 執行封裝,檢視錯誤日誌。
常見坑點與對策
- 字符集不符:ODBC DSN 設定 Character Set = MySQL 實際編碼,SQL Server 目標欄位用
NVARCHAR 存 Unicode。
- 大表匯入慢:調大
Packet Size、分批次、或用 bcp / SSIS 替代精靈。
- 自增欄位:匯入前關閉
IDENTITY_INSERT,匯入後重啟。
- 外鍵約束:先匯入主表,或暫時停用約束
ALTER TABLE ... NOCHECK CONSTRAINT ALL。
驗證腳本
-- 筆數比對
SELECT 'MySQL', COUNT(*) FROM mysql_db.table_name
UNION ALL
SELECT 'SQL Server', COUNT(*) FROM sqlserver_db.dbo.table_name;
-- 關鍵欄位抽樣
SELECT * FROM sqlserver_db.dbo.table_name TABLESAMPLE (10 ROWS);