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

SQL Server 命令列匯入匯出工具 bcp 與 sqlcmd 完整指南

     編輯:關於SqlServer

前言

在自動化部署、資料遷移、ETL 排程等場景中,命令列工具是 DBA 與開發人員的得力助手。SQL Server 提供 bcp(大量複製程式)與 sqlcmd 兩大核心命令列工具,支援高效、腳本化的資料匯入匯出操作。

一、 bcp 工具深度解析

bcp 基於 DB-Library,支援平行處理,能高效處理大批量資料移動。它提供四種操作模式:

  • in:從檔案匯入資料至資料表/檢視表。
  • out:將資料表/檢視表資料匯出至檔案。
  • queryout:執行 T-SQL 查詢並將結果集匯出(支援複雜過濾、聯結)。
  • format:產生格式化檔,記錄欄位對應、資料類型、分隔符等元資訊,利於重複匯入匯出。

常用參數速查表

參數說明
-f format_file指定格式化檔路徑。配合 in/out 使用現有檔,配合 format 產生新檔。
-x配合 -f 產生 XML 格式的格式化檔。
-F first_row / -L last_row指定匯入匯出的起始/結束列號,支援分批處理。
-c使用字元模式,欄位分隔符 \t,列分隔符 \n,無前置長度。
-w使用 Unicode 字元模式,儲存類型為 nchar。
-t / -r自訂欄位/列分隔符,預設分別為 \t 和 \n。
-S server[\instance]指定目標伺服器實例,預設連接本機預設實例。
-U / -PSQL 驗證登入帳號密碼。
-T使用信任連接(Windows 驗證),互斥 -U/-P。
-k空值欄位插入 NULL 而非預設值。

實戰範例

-- 信任連接匯出資料表
bcp AdventureWorks.Sales.Currency out c:\currency1.txt -c -T

-- 密碼驗證匯出查詢結果
bcp "SELECT TOP 20 * FROM AdventureWorks.Sales.Currency" queryout c:\currency2.txt -c -U "sa" -P "password"

-- 結合 -F/-L 匯出指定範圍列
bcp "SELECT TOP 20 * FROM AdventureWorks.Sales.Currency" queryout c:\currency2.txt -F 10 -L 13 -c -T

二、 sqlcmd 實用工具

sqlcmd 是取代舊版 osql/isql 的現代化命令列查詢工具,支援互動模式與腳本執行模式。

啟動與連線

  1. 開啟 CMD 視窗。
  2. 輸入 sqlcmd 連接本機預設實例(信任連接)。
  3. 輸入 EXIT 結束會話。

腳本執行範例

sqlcmd -S localhost -d DatabaseName -U sa -P 12345 -i d:\test.sql

參數說明:-S 伺服器,-d 資料庫,-U/-P 帳號密碼,-i 輸入腳本檔。

三、 選型建議

  • bcp:大批量資料搬移、固定結構匯入匯出、需高效能平行處理時首選。
  • sqlcmd:執行 DDL/DML 腳本、管理維護作業、互動式查詢、輸出結果供後續處理時適合。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved