資料的大量匯入及匯出 (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 大量資料列集提供者,藉由指定 OPENROWSET (BULK...) 函式來選取 INSERT 語句中的資料,將資料大量匯入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 儲存體。
格式檔案提供彈性方式,在匯入期間用於解譯資料檔中的資料,以及在匯出期間用於格式化資料檔中的資料。 這種彈性不需要撰寫特殊用途的程式碼來解譯資料,或將資料重新格式化為SQL Server或外部應用程式的特定需求。 例如,如果您大量匯出的資料即將要載入到需要逗號分隔值的應用程式中,則可以使用格式檔案,在匯出的資料中插入逗號當做欄位結束字元。
SQL Server支援兩種格式檔案:XML 格式檔案和非 XML 格式檔案。
bcp 公用程式 是唯一可以產生格式檔案的工具。 如需詳細資訊,請參閱建立格式檔案 (SQL Server) 。 如需格式檔案的詳細資訊,請參閱將檔案格式化為匯入或匯出資料 (SQL Server) 。
注意
萬一在大量匯出或匯入作業期間未提供格式檔案,您可以在命令列覆寫預設格式。