大容量导入和导出数据 (SQL Server)

SQL Server 支持从 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...) 语句

通过在 INSERT 语句中指定 OPENROWSET(BULK…) 函数来选择数据,从而使用 OPENROWSET 大容量行集提供程序将数据大容量导入 SQL Server 表的 Transact-SQL 语句。 

重要说明重要提示

SQL Server 大容量导入操作不支持逗号分隔值 (CSV) 文件。 但是,在某些情况下,CSV 文件可在将数据大容量导入 SQL Server 时用作数据文件。 请注意,CSV 文件的字段终止符不一定是逗号。 有关详细信息,请参阅准备用于大容量导出或导入的数据 (SQL Server)

用于“返回首页”链接的箭头图标[返回页首]

格式化文件

bcp 实用工具、BULK INSERT 和 INSERT ... SELECT * FROM OPENROWSET(BULK...) 都支持使用专门的“格式化文件”来存储数据文件中每个字段的格式信息。 格式化文件还可以包含相应的 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)