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

SQL Server 資料匯入匯出五大神器:從精靈到 BCP、SSIS、XML 全解析

     編輯:關於SqlServer

日常運維中,資料遷移與匯入匯出是高頻剛需。SQL Server 提供了多樣化的工具鏈,各有優勢適用場景不同。本文系統梳理五大主流方式,助你按需選型。

1. 資料匯入匯出精靈

圖形化、所見即所得、支援異構資料源(Excel、Access、Oracle、平面檔案等)。啟動方式:執行 dtswizard 或在 SSMS 中右鍵資料庫 → 任務。亮點在於可將操作另存為 SSIS 套件(.dtsx),後續可用 BI Studio (BIDS) 進一步編輯、排程、部署,實現自動化 ETL。

精靈資料源選擇精靈目標選擇

注意: 64 位環境下直接啟動精靈可能缺少 Excel/Access 提供者;透過 SSMS 啟動則可見。

2. BCP 命令列工具

適合腳本化、批次化大量資料搬運。基於 DB-Library,效能極高,支援平行匯入。缺點:匯出無標題列,格式控制較弱。

-- 匯出表到 Excel
bcp pubs.dbo.authors out c:\temp\authors.xls -c -q -S"Server" -U"sa" -P"pwd"

-- 依查詢匯出
bcp "SELECT * FROM pubs.dbo.authors WHERE state='CA'" queryout c:\temp\ca_authors.txt -c -t, -S"Server" -U"sa" -P"pwd"

-- 匯入資料
bcp pubs.dbo.authors in c:\temp\authors.txt -c -q -S"Server" -U"sa" -P"pwd"

3. BULK INSERT / OPENROWSET

在 T-SQL 中直接讀取文字檔、Excel 檔,無需外部程式。適合存儲過程內嵌入。

BULK INSERT dbo.StagingTable FROM 'C:\data\import.txt' WITH (FIELDTERMINATOR=',', ROWTERMINATOR='\n');

INSERT INTO dbo.TargetTable
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0;Database=C:\data\source.xlsx;HDR=YES', 'SELECT * FROM [Sheet1$]');

4. FOR XML / OPENXML

XML 格式交換資料的標準化選擇。FOR XML 將查詢結果序列化為 XML;OPENXML 將 XML 文件解析為資料列集寫入資料表。

-- 匯出 XML
SELECT * FROM Orders FOR XML RAW('OrderItem'), ELEMENTS XSINIL, ROOT('Orders');

-- 匯入 XML
DECLARE @x XML = '...', @hdoc INT;
EXEC sp_xml_preparedocument @hdoc OUTPUT, @x;
INSERT INTO Orders SELECT * FROM OPENXML(@hdoc, '/Orders/OrderItem', 2) WITH Orders;
EXEC sp_xml_removedocument @hdoc;

5. Excel 內建資料連線

業務人員最愛:在 Excel 中直接建立資料庫查詢,資料刷新即同步,適合報表分析、臨時查詢。

Excel資料連線查詢精靈

選型建議: 同質 SQL Server 間簡單遷移用 T-SQL;大量批次、排程自動化首選 SSIS/BCP;異構源、需資料清洗轉換用 SSIS;臨時分析用 Excel 連線;程式碼嵌入用 BULK INSERT/OPENROWSET。

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