首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 匯出資料到 MySQL 完整實作指南(BCP + LOAD DATA)

     編輯:關於SqlServer

階段一:從 SQL Server 匯出文字檔

使用 bcp 工具,支援查詢導出、格式檔、字元/Unicode 編碼等選項。

常用參數速查

參數說明
queryout以 T-SQL 查詢結果導出
-c字元模式,欄位分隔 \t,列分隔 \n
-wUnicode 模式,nchar 儲存
-t自訂欄位分隔符(預設 \t)
-r自訂列分隔符(預設 \n)
-S指定伺服器/實例
-U / -P登入帳號/密碼
-T信任連線(Windows 驗證)
-C 65001輸出 UTF-8(代碼頁 65001)

範例指令

bcp "SELECT * FROM dbo.Orders" queryout "F:\export.txt" -c -t"," -S 192.168.1.100 -U sa -P pwd123

階段二:匯入 MySQL(LOAD DATA INFILE)

LOAD DATA LOCAL INFILE 'F:/export.txt'
INTO TABLE orders
CHARACTER SET gbk
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

關鍵選項說明

  • LOCAL:從客戶端讀取檔案;若省略則從伺服器端讀取。
  • REPLACE / IGNORE:處理唯一鍵衝突策略。
  • CHARACTER SET gbk:與匯出檔編碼一致,防止中文亂碼。
  • SET col=expr:匯入同時衍生欄位(如 SET create_date=CURRENT_TIMESTAMP)。

常見問題排查

1. The used command is not allowed with this MySQL version

啟動客戶端加參數:
mysql --local-infile=1 -u root -p -h 127.0.0.1

2. 需要 UTF-8 匯出

加入 -C 65001:
bcp "query" queryout "file.txt" -c -C65001 -S ...

最佳實務建議

  • 先以 bcp ... format nul -f fmt.fmt -c 產生格式檔,確保欄位對應正確。
  • 大量資料建議分批次匯出/匯入,並搭配交易控制。
  • 驗證資料筆數、檢查碼(checksum)確保完整性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved