准备用于大容量导出或大容量导入的数据

更新日期: 2007 年 9 月 15 日

本部分讨论计划大容量导出操作时的相关注意事项以及大容量导入操作的要求。

ms188609.note(zh-cn,SQL.90).gif注意:
如果您不太确定该如何格式化数据文件以进行大容量导入,则可以使用 bcp 实用工具将数据从表格导入数据文件。 此文件中每个数据字段的格式均显示了将数据大容量导入对应表列时所要求的格式。 对数据文件的各个字段使用相同的数据格式。

大容量导出的数据文件格式注意事项

在使用 bcp 命令执行大容量导出操作之前,请先考虑下列事项:

  • 将数据导出到文件时,bcp 命令使用指定的文件名自动创建数据文件。 如果该文件名已经存在,正在大容量复制到数据文件的数据将覆盖文件中的现有内容。
  • 从表或视图大容量导出到数据文件要求对正在大容量复制的表或视图具有 SELECT 权限。
  • Microsoft SQL Server 可以使用并行扫描检索数据。 因此,通常不保证从 SQL Server 实例大容量导出的表行在数据文件中按特定顺序排列。 为了确保大容量导出的表行在数据文件中按特定顺序排列,请使用 queryout 选项来通过查询进行大容量导出,并指定一个 ORDER BY 子句。 有关详细信息,请参阅将查询中的数据导出到数据文件

大容量导入的数据文件格式要求

为了导入数据文件中的数据,该文件必须满足以下基本要求:

  • 数据必须以行和列的格式表示。
ms188609.note(zh-cn,SQL.90).gif注意:
数据文件的结构不必与 SQL Server 表的结构一致,因为大容量导入过程中可以跳过列或对列重新排序。
  • 数据文件中的数据格式必须是支持的格式,例如字符格式或本机格式。
  • 数据可以是字符格式或本机二进制格式(包括 Unicode)。
  • 为了使用 bcp 命令、BULK INSERT 语句或 INSERT ... SELECT * FROM OPENROWSET(BULK...) 语句导入数据,目标表必须已存在。
  • 数据文件中的每个字段都必须与目标表中的对应列兼容。 例如,不能将 int 字段加载到 datetime 列。 有关详细信息,请参阅使用本机格式、字符格式或 Unicode 格式使用 bcp 指定数据格式以获得兼容性
    ms188609.note(zh-cn,SQL.90).gif注意:
    若要指定从数据文件导入的行子集而并非整个文件,可以使用带有 -Ffirst_row 开关和/或 -Llast_row 开关的 bcp 命令。 有关详细信息,请参阅 bcp 实用工具
  • 若要从具有固定长度或固定宽度字段的数据文件导入数据,您必须使用格式化文件。 有关详细信息,请参阅XML 格式化文件示例
  • 在某些情况下,可以将逗号分隔值 (CSV) 文件用作数据文件来将数据大容量导入 SQL Server。 请注意,CSV 文件的字段终止符不必一定为逗号。 若要作为进行大容量导入的数据文件使用,CSV 文件必须遵从以下限制:
    • 数据字段绝不包含字段终止符。
    • 数据字段中的值要么全不用引号 ("") 引起来,要么全用。
      若要从 Microsoft FoxPro 或 Visual FoxPro 表 (.dbf) 文件或者 Microsoft Excel 电子表格 (.xls) 文件导入数据,请将这些数据转换为 .CSV 文件,此类文件的文件扩展名通常为 .csv。 然后,可以将 .csv 文件用作 SQL Server 大容量导入操作中的数据文件。

此外,将数据文件中的数据大容量导入表还有以下要求:

  • 用户必须对表具有 INSERT 和 SELECT 权限。 如果用户使用要求执行数据定义语言 (DDL) 操作(例如禁用约束)的选项时,他们还要具有 ALTER TABLE 权限。
  • 使用 BULK INSERT 或 INSERT ... SELECT * FROM OPENROWSET(BULK...) 大容量导入数据时,必须可以通过 SQL Server 进程的安全性配置文件(如果用户使用 SQL Server 提供的登录名进行登录)或在委托安全性下使用的 Microsoft Windows 登录名对数据文件进行读取操作。 此外,用户还必须具有 ADMINISTER BULK OPERATIONS 权限以读取文件。
ms188609.note(zh-cn,SQL.90).gif注意:
由于不支持大容量导入到分区视图,因此无法将数据大容量导入到分区视图。

请参阅

概念

使用字符格式导入或导出数据
使用本机格式导入或导出数据
了解 XML 格式化文件

其他资源

bcp 实用工具
BULK INSERT (Transact-SQL)
数据类型 (Transact-SQL)
ExportData Method
ImportData Method

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2007 年 9 月 15 日

更改的内容:
  • 进一步讨论了准备用于大容量导入的 CSV 文件。

2006 年 7 月 17 日

新增内容:
  • 在介绍中添加了说明。
  • 添加了有关如何导入固定长度或固定宽度字段的要求。

2006 年 4 月 14 日

新增内容:
  • 新增了有关从外部 SQL Server 导入数据时的数据文件格式的信息。