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

SQL Server BCP 大量資料匯入匯出工具完整參考指南

     編輯:關於SqlServer

BCP 核心特性

命令列工具,基於 DB-Library,支援平行高效處理大量資料。可直接匯出資料表/檢視,或透過 SELECT 過濾匯出。支援預設格式或格式檔案控制匯入匯出細節。

四大動作模式

動作參數說明
匯入in後接來源檔案名
匯出out後接目的檔案名
SQL 陳述式匯出queryout資料來源為 SQL 陳述式
產生格式檔format後接格式檔名

常用選項速查

  • -f format_file:格式檔名(in/out 讀取既有,format 產生新檔)。
  • -x:搭配 -f 產生 XML 格式檔。
  • -F first_row、-L last_row:指定起迄列。
  • -c:字元模式(char 型別、無前置長度、Tab 分欄、換行分列)。
  • -w:Unicode 模式(nchar、Tab/換行分隔)。
  • -t field_term、-r row_term:自訂欄位/列分隔符。
  • -S server[\instance]:指定目標執行個體。
  • -U login_id、-P password:SQL 驗證(需雙引號括住)。
  • -T:信任連線(Windows 驗證),與 -U/-P 擇一。
  • -k:空值欄位插入 NULL 而非預設值。

實戰範例:AdventureWorks.Sales.Currency

1. 匯出整個資料表

BCP AdventureWorks.Sales.Currency out c:\currency1.txt -c -T

輸出 105 列,約 10500 rows/sec。

2. 過濾匯出(TOP 20 且第 10-13 列)

EXEC master..xp_cmdshell 'BCP "SELECT TOP 20 * FROM AdventureWorks.Sales.Currency" queryout c:\currency2.txt -F 10 -L 13 -c -T'

3. 產生格式檔

-- 文字格式
EXEC master..xp_cmdshell 'BCP AdventureWorks.Sales.Currency format nul -f c:\currency_format1.fmt -c -T'
-- XML 格式
EXEC master..xp_cmdshell 'BCP AdventureWorks.Sales.Currency format nul -f c:\currency_format2.fmt -x -c -T'

格式檔記錄欄位型別、長度、分隔符、名稱等中繼資料。

4. 匯入資料(配合格式檔驗證)

-- 建立目標表
SELECT TOP 0 * INTO AdventureWorks.Sales.Currency1 FROM AdventureWorks.Sales.Currency;
-- 一般匯入
EXEC master..xp_cmdshell 'BCP AdventureWorks.Sales.Currency1 in c:\currency1.txt -c -T'
-- 指定列區間 + 文字格式檔
EXEC master..xp_cmdshell 'BCP AdventureWorks.Sales.Currency1 in c:\currency1.txt -F 10 -L 13 -c -f c:\currency_format1.fmt -T'
-- 指定列區間 + XML 格式檔
EXEC master..xp_cmdshell 'BCP AdventureWorks.Sales.Currency1 in c:\currency1.txt -F 10 -L 13 -c -x -f c:\currency_format2.fmt -T'

格式檔可過濾不符合欄位長度等條件的資料列。

整合應用

BCP 可透過 xp_cmdshell 嵌入 T-SQL,進而整合至 Delphi、C# 等用戶端程式,賦予應用程式匯入匯出能力。

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