資料的大量匯入及匯出 (SQL Server)
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
SQL Server 支援從 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) 檔案作為大量匯入資料至 SQL Server 的相關規則,請參閱準備大量匯出或匯入的資料 (SQL Server)。
注意
Azure Synapse Analytics 只支援使用 bcp 公用程式來匯入及匯出分隔的檔案。
格式檔案
bcp 公用程式、BULK INSERT 和 INSERT ...SELECT * FROM OPENROWSET(BULK...) 全都支援使用特殊的「格式檔案」 ,將每一個欄位的格式資訊儲存在資料檔案中。 格式檔案也可以包含對應的 SQL Server 資料表的相關資訊。 對 SQL Server 執行個體大量匯出與大量匯入資料時,格式檔案可以提供所需的所有格式資訊。
重要
您無法使用 BCP 將資料從 Azure Blob 儲存體匯入至 Azure SQL Database。 使用 BULK INSERT 或是 OPENROWSET 匯入至 Azure Blob 儲存體或從 Azure Blob 儲存體匯出。
格式檔案提供彈性方式,在匯入期間用於解譯資料檔中的資料,以及在匯出期間用於格式化資料檔中的資料。 這樣的彈性讓您不需撰寫特殊用途的程式碼來解譯資料,也不需因應 SQL Server 或外部應用程式的特定需求將資料重新格式化。 例如,如果您大量匯出的資料即將要載入到需要逗號分隔值的應用程式中,則可以使用格式檔案,在匯出的資料中插入逗號當做欄位結束字元。
SQL Server 支援下列兩種類型的格式檔案:XML 格式檔案和非 XML 格式檔案。
bcp 公用程式 是唯一可以產生格式檔案的工具。 如需詳細資訊,請參閱建立格式檔案 (SQL Server)。 如需格式檔案的詳細資訊,請參閱匯入或匯出資料的格式檔案 (SQL Server)。
注意
萬一在大量匯出或匯入作業期間未提供格式檔案,您可以在命令列覆寫預設格式。