大容量导入和导出数据 (SQL Server)Bulk Import and Export of Data (SQL Server)

适用对象:是SQL Server 是Azure SQL 数据库 是Azure Synapse Analytics (SQL DW) 是并行数据仓库APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

SQL ServerSQL Server 支持从 SQL ServerSQL Server 表大容量导出数据(“大容量数据” )以及将大容量数据导入 SQL ServerSQL Server 表或未分区的视图。supports exporting data in bulk (bulk data) from a SQL ServerSQL Server table and importing bulk data into a SQL ServerSQL Server table or nonpartitioned view.

  • “大容量导出” 是指将数据从 SQL ServerSQL Server 表复制到数据文件。Bulk exporting refers to copying data from a SQL ServerSQL Server table to a data file.
  • “大容量导入” 是指将数据从数据文件加载到 SQL ServerSQL Server 表。Bulk importing refers to loading data from a data file into a SQL ServerSQL Server table. 例如,您可以将数据从 MicrosoftMicrosoft Excel 应用程序导出到数据文件,然后将这些数据大容量导入到 SQL ServerSQL Server 表中。For example, you can export data from a MicrosoftMicrosoft Excel application to a data file and then bulk import that data into a SQL ServerSQL Server table.

批量导入和导出数据的方法Methods for bulk importing and exporting data

SQL ServerSQL Server 支持从 SQL ServerSQL Server 表大容量导出数据以及将数据大容量导入 SQL ServerSQL Server 表或未分区的视图。supports bulk exporting data from a SQL ServerSQL Server table and for bulk importing data into a SQL ServerSQL Server table or nonpartitioned view. 可以使用下列基本方法:The following basic methods are available.

方法Method 描述Description 导入数据Imports data 导出数据Exports data
bcp 实用工具bcp utility 大容量导出数据和大容量导入数据并生成格式化文件的命令行实用工具 (Bcp.exe)。A command-line utility (Bcp.exe) that bulk exports and bulk imports data and generates format files. Yes Yes
BULK INSERT 语句BULK INSERT statement 将数据直接从数据文件导入数据库表或未分区视图的 Transact-SQLTransact-SQL 语句。A Transact-SQLTransact-SQL statement that imports data directly from a data file into a database table or nonpartitioned view. Yes No
INSERT ...SELECT * FROM OPENROWSET(BULK...) 语句INSERT ... SELECT * FROM OPENROWSET(BULK...) statement 通过在 INSERT 语句中指定 OPENROWSET(BULK…) 函数来选择数据,从而使用 OPENROWSET 大容量行集提供程序将数据大容量导入 Transact-SQLTransact-SQL 表的 SQL ServerSQL Server 语句。A Transact-SQLTransact-SQL statement that uses the OPENROWSET bulk rowset provider to bulk import data into a SQL ServerSQL Server table by specifying the OPENROWSET(BULK...) function to select data in an INSERT statement. Yes No
SQL Server 导入和导出向导SQL Server Import and Export Wizard 此向导可创建简单包,以便导入和导出介于多种常用数据格式(包括数据库、电子表格和文本文件)的数据。The wizard creates simple packages that import and export data between many popular data formats including databases, spreadsheets, and text files. Yes Yes

重要

有关将逗号分隔值 (CSV) 文件用作将数据批量导入到 SQL Server 的数据文件的规则,请参阅准备用于批量导出或导入的数据 (SQL Server)For rules about using a comma-separated value (CSV) file as the data file for a bulk import of data into SQL Server, see Prepare Data for Bulk Export or Import (SQL Server).

备注

Azure SQL DW 仅支持使用 bcp 实用工具导入和导出带分隔符的文件。Only the bcp utility is supported by Azure SQL DW for importing and exporting delimited files.

格式化文件Format files

bcp 实用工具BULK INSERT 以及 INSERT ...SELECT * FROM OPENROWSET(BULK...) 都支持使用专门的“格式化文件” 来存储数据文件中每个字段的格式信息。The bcp utility, BULK INSERT, and INSERT ... SELECT * FROM OPENROWSET(BULK...) all support the use of a specialized format file that stores format information for each field in a data file. 格式化文件还可以包含相应的 SQL ServerSQL Server 表的有关信息。A format file might also contain information about the corresponding SQL ServerSQL Server table. 格式化文件可以用于提供从 SQL ServerSQL Server实例大容量导出数据和向其中大容量导入数据时所需的所有格式信息。The format file can be used to provide all the format information that is required to bulk export data from and bulk import data to an instance of SQL ServerSQL Server.

重要

不能使用 BCP 将数据从 Azure blob 存储导入,也不能将数据从 Azure blob 存储导出到 Azure SQL 数据库。You cannot use BCP to import data from or export data to Azure blob storage into Azure SQL Database. 使用 BULK INSERTOPENROWSET 从 Azure blob 存储导入数据或将数据导出到 Azure blob 存储。Use BULK INSERT or OPENROWSET to import from or export to Azure blob storage.

格式化文件提供了一种解释导入期间数据文件中数据的格式以及设置导出期间数据文件中数据格式的灵活方式。Format files provide a flexible way to interpret data as it is in the data file during import, and also to format data in the data file during export. 这种灵活性使得解释数据时无需编写专用代码,也无需为满足 SQL ServerSQL Server 或外部应用程序的特殊需要而重新设置数据的格式。This flexibility eliminates the need to write special-purpose code to interpret the data or reformat the data to the specific requirements of SQL ServerSQL Server or the external application. 例如,如果将要加载的数据大容量导出到某个需要逗号分隔值的应用程序,则可以使用格式化文件将逗号作为字段终止符插入导出的数据中。For example, if you are bulk exporting data to be loaded into an application that requires comma-separated values, you can use a format file to insert commas as field terminators in the exported data.

SQL ServerSQL Server 支持两种格式化文件类型:XML 格式化文件和非 XML 格式化文件。supports two kinds of format files: XML format files and non-XML format files.

bcp 实用工具 是唯一能够生成格式化文件的工具。The bcp utility is the only tool that can generate a format file. 有关详细信息,请参阅 创建格式化文件 (SQL Server)For more information, see Create a Format File (SQL Server). 有关格式化文件的详细信息,请参阅导入或导出数据的格式化文件 (SQL Server)For more information about format files, see Format Files for Importing or Exporting Data (SQL Server).

备注

如果在大容量导出或导入操作期间未提供格式化文件,您可以在命令行处覆盖默认格式。In cases when a format file is not supplied during a bulk export or import operations, you can override the default formatting at the command line.

相关主题Related Topics
准备用于批量导出或导入的数据 (SQL Server)Prepare Data for Bulk Export or Import (SQL Server)
用于大容量导入或导出的数据格式 (SQL Server)Data Formats for Bulk Import or Bulk Export (SQL Server)
 ● 使用本机格式导入或导出数据 (SQL Server) ● Use Native Format to Import or Export Data (SQL Server)
 ● 使用字符格式导入或导出数据 (SQL Server) ● Use Character Format to Import or Export Data (SQL Server)
 ● 使用 Unicode 本机格式导入或导出数据 (SQL Server) ● Use Unicode Native Format to Import or Export Data (SQL Server)
 ● 使用 Unicode 字符格式导入或导出数据 (SQL Server) ● Use Unicode Character Format to Import or Export Data (SQL Server)
 ● 导入来自早期版本的 SQL Server 的本机格式数据和字符格式数据 ● Import Native and Character Format Data from Earlier Versions of SQL Server
在使用 bcp 时指定数据格式以获得兼容性 (SQL Server)Specify Data Formats for Compatibility when Using bcp (SQL Server)
 ● 使用 bcp 指定文件存储类型 (SQL Server) ● Specify File Storage Type by Using bcp (SQL Server)
 ● 使用 bcp 指定数据文件中的前缀长度 (SQL Server) ● Specify Prefix Length in Data Files by Using bcp (SQL Server)
 ● 使用 bcp 指定字段长度 (SQL Server) ● Specify Field Length by Using bcp (SQL Server)
 ● 指定字段终止符和行终止符 (SQL Server) ● Specify Field and Row Terminators (SQL Server)
在批量导入期间保留 Null 或使用默认值 (SQL Server)Keep Nulls or Use Default Values During Bulk Import (SQL Server)
大容量导入数据时保留标识值 (SQL Server)Keep Identity Values When Bulk Importing Data (SQL Server)
用来导入或导出数据的格式化文件 (SQL Server)Format Files for Importing or Exporting Data (SQL Server)
 ● 创建格式化文件 (SQL Server) ● Create a Format File (SQL Server)
 ● 使用格式化文件批量导入数据 (SQL Server) ● Use a Format File to Bulk Import Data (SQL Server)
 ● 使用格式化文件跳过表列 (SQL Server) ● Use a Format File to Skip a Table Column (SQL Server)
 ● 使用格式化文件跳过数据字段 (SQL Server) ● Use a Format File to Skip a Data Field (SQL Server)
 ● 使用格式化文件将表列映射到数据文件字段 (SQL Server) ● Use a Format File to Map Table Columns to Data-File Fields (SQL Server)

详细信息More information