Share via


資料的大量匯入及匯出 (SQL Server)

SQL Server 支援從 SQL Server 資料表匯出大量資料 (「大量資料」(bulk data)),以及將大量資料匯入 SQL Server 資料表或未分割的檢視。 大量匯入和大量匯出對於在 SQL Server 與異質資料來源間有效傳送資料,是必要條件。 「大量匯出」代表將資料從 SQL Server 資料表複製到資料檔。 「大量匯入」代表從資料檔載入資料至 SQL Server 資料表。 例如,您可以從 Microsoft Excel 應用程式中將資料匯出至資料檔,然後將資料大量匯入 SQL Server 資料表中。

本主題內容:

  • 大量匯入和大量匯出作業簡介

  • 相關工作

大量匯入和大量匯出概觀

本節列出並簡要比較各種適用於大量匯入和匯出資料的方法。 本節也介紹格式檔案。

本主題內容:

  • 大量匯入和匯出資料的方法

  • 格式檔案

大量匯入和匯出資料的方法

SQL Server 支援從 SQL Server 資料表大量匯出資料,以及將資料大量匯入 SQL Server 資料表或未分割的檢視。 有下列基本方法可用。

方法

說明

匯入資料

匯出資料

bcp 公用程式

可大量匯出和大量匯入資料並產生格式檔案的命令列公用程式 (Bcp.exe)。

BULK INSERT 陳述式

Transact-SQL 陳述式,可將資料直接從資料檔案匯入至資料庫資料表或非資料分割的檢視。

INSERT ... SELECT * FROM OPENROWSET(BULK...) 陳述式

Transact-SQL 陳述式,其指定 OPENROWSET(BULK…) 函數選取 INSERT 陳述式中的資料,以使用 OPENROWSET BULK 資料列集提供者,將資料大量匯入 SQL Server 資料表。 

重要事項重要事項

SQL Server 大量匯入作業不支援逗號分隔值 (CSV) 檔案。 不過,在某些情況下,CSV 檔案可用以當做資料檔,以便將資料大量匯入 SQL Server。 請注意,CSV 檔案的欄位結束字元不必是逗號。 如需詳細資訊,請參閱<準備大量匯出或匯入的資料 (SQL Server)>。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

格式檔案

bcp 公用程式、BULK INSERT 和 INSERT ... SELECT * FROM OPENROWSET(BULK...) 全都支援使用特殊的「格式檔案」(Format file),將每一個欄位的格式資訊儲存在資料檔中。 格式檔案也可以包含對應的 SQL Server 資料表的相關資訊。 對 SQL Server 執行個體大量匯出與大量匯入資料時,格式檔案可以提供所需的所有格式資訊。

格式檔案提供彈性方式,在匯入期間用於解譯資料檔中的資料,以及在匯出期間用於格式化資料檔中的資料。 這樣的彈性讓您不需撰寫特殊用途的程式碼來解譯資料,也不需因應 SQL Server 或外部應用程式的特定需求將資料重新格式化。 例如,如果您大量匯出的資料即將要載入到需要逗號分隔值的應用程式中,則可以使用格式檔案,在匯出的資料中插入逗號當做欄位結束字元。

SQL Server 2012 支援下列兩種類型的格式檔案:XML 格式檔案和非 XML 格式檔案。 舊版的 SQL Server 支援非 XML 格式檔案;XML 格式檔案則是 SQL Server 2005 的新功能。

bcp 公用程式是唯一可以產生格式檔案的工具。 如需詳細資訊,請參閱<建立格式檔案 (SQL Server)>。 如需有關格式檔案的詳細資訊,請參閱<匯入或匯出資料的格式檔案 (SQL Server)>。

[!附註]

萬一在大量匯出或匯入作業期間未提供格式檔案,您可以在命令列覆寫預設格式。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

相關工作

若要使用格式檔案

若要使用大量匯入或大量匯出的資料格式

若要在使用 bcp 時指定相容性的資料格式

  1. 指定欄位與資料列結束字元 (SQL Server)

  2. 使用 bcp 指定資料檔的前置長度 (SQL Server)

  3. 使用 bcp 指定檔案儲存類型 (SQL Server)

搭配回到頁首連結使用的箭頭圖示[回到頁首]

請參閱

參考

執行 XML 資料的大量載入 (SQLXML 4.0)

bcp 公用程式

BULK INSERT (Transact-SQL)

OPENROWSET (Transact-SQL)

概念

大量匯入採用最低限度記錄的必要條件

匯入或匯出資料的格式檔案 (SQL Server)

大量匯入與匯出 XML 文件的範例 (SQL Server)

SQL Server Integration Services

複製資料庫至其他伺服器

執行大量複製作業

匯入或匯出資料的格式檔案 (SQL Server)