适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 预览版中的 SQL 数据库

SQL Server 支持从 SQL Server 表批量导出数据( 批量数据 ),以及将批量数据导入 SQL Server 表或未分区的视图。

批量导出 是指将数据从 SQL Server 表复制到数据文件。 批量导入 是指将数据从数据文件加载到 SQL Server 表。 例如,您可以将数据从 Microsoft Excel 应用程序导出到数据文件,然后将这些数据大容量导入到 SQL Server 表中。

批量导入和导出数据的方法

SQL Server 支持从 SQL Server 表批量导出数据,以及将数据批量导入 SQL Server 表或未分区的视图。 可以使用下列基本方法:

Method Description Imports data Exports data INSERT ... SELECT * FROM OPENROWSET(BULK...) 语句 通过在 INSERT 语句中指定 OPENROWSET(BULK…) 函数来选择数据,从而使用 OPENROWSET 大容量行集提供程序将数据大容量导入 Transact-SQL 表的 SQL Server 语句。 SQL Server 导入和导出向导 此向导可创建简单包,以便导入和导出介于多种常用数据格式(包括数据库、电子表格和文本文件)的数据。

Important

有关将逗号分隔值 (CSV) 文件用作将数据批量导入到 SQL Server 的数据文件的规则,请参阅 准备用于批量导出或导入的数据 (SQL Server)

Azure Synapse Analytics 仅支持使用 bcp 实用工具导入和导出带分隔符的文件。

Format files

bcp 实用工具 BULK INSERT INSERT ...SELECT * FROM OPENROWSET(BULK...) 都支持使用专用 格式化文件 ,该文件存储数据文件中每个字段的格式信息。 格式化文件还可以包含相应的 SQL Server 表的有关信息。 格式化文件可以用于提供从 SQL Server 实例批量导出数据和向其中批量导入数据时所需的所有格式信息。

Important

不能使用 BCP 将数据从 Azure Blob 存储导入,也不能将数据从 Azure Blob 存储导出到 Azure SQL 数据库。 使用 BULK INSERT OPENROWSET BULK 导入到 Azure Blob Storage 或从 Azure Blob Storage 导出。

格式化文件提供了一种解释导入期间数据文件中数据的格式以及设置导出期间数据文件中数据格式的灵活方式。 这种灵活性使得解释数据时无需编写专用代码,也无需为满足 SQL Server 或外部应用程序的特殊需要而重新设置数据的格式。 例如,如果将要加载的数据大容量导出到某个需要逗号分隔值的应用程序,则可以使用格式化文件将逗号作为字段终止符插入导出的数据中。

SQL Server 支持两种格式化文件:XML 格式化文件和非 XML 格式化文件。

bcp 实用工具 是唯一能够生成格式化文件的工具。 有关详细信息,请参阅 创建格式化文件 (SQL Server) 。 有关格式化文件的详细信息,请参阅 导入或导出数据的格式化文件 (SQL Server)

如果在大容量导出或导入操作期间未提供格式化文件,您可以在命令行处覆盖默认格式。