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

SQL Server 資料匯入匯出三大方式詳解(二):BCP 與 SSIS

     編輯:關於SqlServer

續前篇,介紹命令列工具 BCP 與圖形化 ETL 平台 SSIS(SQL Server 2005+ 取代 DTS)。

BCP (Bulk Copy Program) — 高效批量匯出/匯入

  • 純命令列,極低額外負擔,適合大量資料(百萬列以上)移動。
  • 支援原生格式、字元格式、格式檔自訂欄位對應。

常用參數

參數說明
-S server\instance目標伺服器
-d database資料庫
-U / -P登入帳號/密碼(或 -T 信任連接)
-c字元模式(預設分隔符 \t、行終止 \r\n)
-n原生模式(保留資料型別,速度最快)
-f format_file指定格式檔(非 XML)
-e err_file錯誤列導向檔案
-b batch_size批次大小(預設全部)
-h "TABLOCK"大量載入提示,提升效能

範例

-- 匯出至文字檔
bcp "SELECT * FROM dbo.Orders" queryout C:\data\orders.txt -c -t, -T -S localhost

-- 匯入(需目標表存在)
bcp dbo.Orders in C:\data\orders.txt -c -t, -T -S localhost -b 10000 -h "TABLOCK" -e C:\data\err.log

SSIS (SQL Server Integration Services) — 企業級 ETL

  • Visual Studio 整合開發環境(SSDT),拖拉式設計資料流程。
  • 支援來源/目的地:關聯式資料庫、平面檔、Excel、XML、Web Service、ODBC、OLE DB 等。
  • 內建轉換元件:查閱、合併、條件分割、衍生欄位、資料清理、腳本元件(C#/VB.NET)。
  • 部署模式:專案部署模型(SSISDB 目錄)、套件部署模型(檔案系統/資料庫)。
  • 排程執行:SQL Server Agent 作業、命令列 dtexec、PowerShell。

核心物件

物件用途
Connection Manager管理連接字串與驗證
Control Flow工作流程控制(循環、條件、執行 SQL、發送郵件)
Data Flow資料抽取-轉換-載入(ETL 核心)
Event Handler錯誤/警告/資訊事件處理
Parameters / Variables動態化套件執行

三大方式選型建議

方式優勢劣勢適用場景
T-SQL (OPENROWSET)即時、無外部工具、可 JOIN效能受限、單執行緒、難處理複雜轉換臨時跨庫查詢、小量資料同步
BCP極快、低資源、支援格式檔純命令列、無視覺化、錯誤處理弱大量資料定時匯出/匯入、資料庫搬遷
SSIS視覺化、豐富轉換、錯誤處理、可維護學習曲線陡、部署相對複雜企業級 ETL、複雜清洗轉換、異構整合
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved