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

SQL Server 資料遷移至 MySQL 輕量方案:CSV 中轉法實戰

     編輯:MySQL 資料庫相關知識

需將 SQL Server 單張表資料遷移至 MySQL,不想安裝 ODBC、Linked Server 或第三方 ETL 工具?利用 SQL Server 內建匯出 CSV、再用 SQLyog 導入 MySQL,無需額外元件,適合中小資料量單表遷移。本文記錄完整操作步驟與避坑指南。

一、核心流程

  1. SQL Server Enterprise Manager → 匯出資料 → 選「文字檔」→ 存為 .csv
  2. 手動補上 CSV 第一行欄位名(含引號、逗號分隔)
  3. SQLyog → 匯入外部資料 → 選 CSV 目錄 → 完成

二、詳細步驟

1. SQL Server 匯出 CSV

  • 開啟企業管理器,右鍵目標表 →「所有任務」→「匯出資料」
  • 資料來源保持預設,目的地選「文字檔」,檔名務必以 .csv 結尾(如 1.csv),否則 MySQL 無法識別
  • 「選擇目的檔案格式」頁面,來源下拉框精確選取目標表,完成匯出

2. CSV 檔案修正(關鍵步驟)

匯出的 CSV 無表頭,直接導入會將第一筆資料當欄位名。修正方法:

  • 右鍵企業管理器中該表 →「設計表」,抄錄「欄位名、資料類型、長度」
  • 用記事本開啟 CSV,第一行插入空行,填入欄位名,格式:"ncid","ncname","link"(雙引號包裹、逗號分隔)
  • 儲存,將 CSV 放入專用資料夾(如桌面 1/ 目錄)

3. SQLyog 導入 MySQL

  • 開啟 SQLyog,右鍵目標資料庫 → Import →「Import External Data Wizard」
  • 資料來源類型選 CSV,目錄選上一步建立的資料夾
  • 一路下一步完成,資料庫會出現 1_csv 表
  • 重命名表名,必要時調整欄位型別、長度、索引(SQLyog「修改表」功能皆可操作)

三、常見問題與技巧

問題原因/解決
中文亂碼CSV 編碼需與 MySQL 連線編碼一致(建議 UTF-8),匯出時留意代碼頁設定
大數據量導入慢單表超 10 萬行建議用 LOAD DATA INFILE 或分批提交
欄位型別不符SQL Server datetime→MySQL DATETIME;bit→TINYINT(1);uniqueidentifier→CHAR(36)
含逗號/換行的文字欄位CSV 需雙引號包裹且內部雙引號轉義,或改用制表符分隔(TSV)

四、適用場景與替代方案

  • 適用:單表、資料量 < 10 萬行、一次性遷移、無法安裝額外軟體的環境
  • 不適用:全庫遷移、頻繁同步、大數據量、需保留存儲過程/觸發器/權限
  • 進階替代:SSMA for MySQL(微軟官方遷移工具)、mysqldump + sed 轉換、CDC 同步工具

掌握 CSV 中轉法,即可在受限環境下快速完成異構資料庫單表遷移,是 DBA 實用工具箱中的輕量利器。

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