OLE DB 目标

更新日期: 2006 年 12 月 12 日

OLE DB 目标用数据库表或视图或者用 SQL 命令,将数据加载到各种符合 OLE DB 的数据库中。例如,OLE DB 源可以将数据加载到 Microsoft Office Access 和 SQL Server 2005 数据库的表中。

ms141237.note(zh-cn,SQL.90).gif注意:
若要将数据加载到使用 Microsoft Office Excel 2007 的数据源,请使用 OLE DB 目标。使用 Excel 目标无法将数据加载到 Excel 2007 数据源。有关详细信息,请参阅 OLE DB 连接管理器。 若要将数据加载到使用 Microsoft Office Excel 2003 或较低版本的数据源,请使用 Excel 目标。有关详细信息,请参阅 Excel 目标

OLE DB 目标为数据加载提供了五种数据访问模式:

  • 表或视图。可以指定现有的表或视图,也可以创建新表。
  • 使用快速加载选项的表或视图。可以指定现有的表或者创建新表。
  • 变量中指定的表或视图。
  • 使用快速加载选项在变量中指定的表或视图。
  • SQL 语句的运行结果。
ms141237.note(zh-cn,SQL.90).gif注意:
OLE DB 目标不支持参数。如果必须执行参数化 INSERT 语句,请使用 OLE DB 命令转换。有关详细信息,请参阅 OLE DB 命令转换

OLE DB 目标加载使用双字节字符集 (DBCS) 的数据时,如果数据访问模式不使用快速加载选项且 OLE DB 连接管理器使用 Microsoft OLE DB Provider for SQL Server (SQLOLEDB),则可能损坏数据。为了确保 DBCS 数据的完整性,应将 OLE DB 连接管理器配置为使用 SQL Native Client 或者使用两种快速加载访问模式之一:“表或视图 - 快速加载”“表名变量或视图名变量 - 快速加载”。这两个选项都可以在**“OLE DB 目标编辑器”**对话框中使用。编写 SSIS 对象模型的程序时,应当将 AccessMode 属性设置为 OpenRowset Using FastLoadOpenRowset Using FastLoad From Variable

ms141237.note(zh-cn,SQL.90).gif注意:
如果用 SSIS 设计器中的 “OLE DB 目标编辑器”对话框创建 OLE DB 目标要向其插入数据的目标表,可能需要手动选择新创建的表。当 OLE DB 访问接口(如 OLE DB Provider for DB2)自动将架构标识符添加到表名称时,需要进行手动选择。
ms141237.note(zh-cn,SQL.90).gif注意:
“OLE DB 目标编辑器”对话框生成的 CREATE TABLE 语句可能需要修改,具体取决于目标类型。例如,某些目标不支持 CREATE TABLE 语句所使用的数据类型。

此目标使用 OLE DB 连接管理器连接数据源,该连接管理器指定要使用的 OLE DB 访问接口。有关详细信息,请参阅 OLE DB 连接管理器

Integration Services 项目还提供了可从中创建 OLE DB 连接管理器的数据源对象,使数据源和数据源视图可用于 OLE DB 目标。有关详细信息,请参阅数据源 (SSIS)数据源视图 (SSIS)

OLE DB 目标包括输入列和目标数据源中的列之间的映射。您不必将输入列映射到所有目标列,但有时如果没有将输入列映射到目标列可能会出错,具体取决于目标列的属性。例如,如果目标列不允许出现空值,则必须将输入列映射到该列。另外,映射列的数据类型必须是兼容的。例如,不能将数据类型为字符串的输入列映射到数据类型为数值的目标列。

OLE DB 目标具有一个常规输入和一个错误输出。

快速加载选项

如果 OLE DB 目标使用快速加载数据访问模式,则可以在用户界面**“OLE DB 目标编辑器”**中为目标指定以下快速加载选项:

  • 保持导入数据文件的标识值或使用由 SQL Server 分配的唯一值。
  • 在大容量加载操作过程中保留空值。
  • 在大容量导入操作过程中检查目标表或视图的约束。
  • 在大容量加载操作期间获取表级锁。
  • 指定批中的行数和提交大小。

某些快速加载选项存储在 OLE DB 目标的特定属性中。例如,FastLoadKeepIdentity 指定是否保持标识值,FastLoadKeepNulls 指定是否保持空值,而 FastLoadMaxInsertCommitSize 则指定作为批提交的行数。其他快速加载选项则存储在 FastLoadOptions 属性内的以逗号分隔的列表中。如果 OLE DB 目标使用存储于 FastLoadOptions 中并在**“OLE DB 目标编辑器”**对话框中列出的所有快速加载选项,则该属性的值将设置为 TABLOCK, CHECK_CONSTRAINTS, ROWS_PER_BATCH=1000。值 1000 指示已将目标配置为使用 1000 行组成的批。

ms141237.note(zh-cn,SQL.90).gif注意:
目标中任何约束失败都将导致 FastLoadMaxInsertCommitSize 所定义的整批行失败。

除了在**“OLE DB 目标编辑器”对话框中公开的快速加载选项以外,还可以通过在“高级编辑器”**对话框的 FastLoadOptions 属性中键入选项,将 OLE DB 目标配置为使用以下大容量加载选项。

快速加载选项

说明

KILOBYTES_PER_BATCH

指定要插入的大小 (KB)。选项的格式为 KILOBYTES_PER_BATCH = <正整数值**>**。

FIRE_TRIGGERS

指定是否在插入表上激发触发器。选项的格式为 FIRE_TRIGGERS。出现该选项说明要激发触发器。

ORDER

指定输入数据如何排序。选项格式为 ORDER <列名称> ASC|DESC。可以列出任何列数,是否包括排序顺序是可选的。如果省略排序顺序,则插入操作假定数据不排序。

ms141237.note(zh-cn,SQL.90).gif注意:

如果根据表中的聚集索引对要加载的数据排序,则可提高性能。

Transact-SQL 关键字在传统上采用大写字母键入,但不区分大小写。

若要了解快速加载选项的详细信息,请参阅BULK INSERT (Transact-SQL)

OLE DB 目标故障排除

如果是在 Microsoft SQL Server 2005 Service Pack 2 (SP2) 中启动,则能够记录 OLE DB 目标对外部数据访问接口所做的调用。您可以使用这项新的日志记录功能,对 OLE DB 目标执行的将数据保存到外部数据源进行故障排除。若要记录 OLE DB 目标对外部数据访问接口所做的调用,请在包级别启用包日志记录并选择**“诊断”**事件。有关详细信息,请参阅包执行故障排除

配置 OLE DB 目标

可以通过 SSIS 设计器或以编程方式来设置属性。

有关可在**“OLE DB 目标编辑器”**对话框中设置的属性的详细信息,请单击下列主题之一:

**“高级编辑器”对话框反映了可以通过编程方式进行设置的属性。有关可以在“高级编辑器”**对话框中或以编程方式设置的属性的详细信息,请单击下列主题之一:

有关如何设置属性的详细信息,请单击下列主题之一:

请参阅

概念

OLE DB 源
Integration Services 变量
创建包数据流

其他资源

Integration Services 目标

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 12 月 12 日

新增内容:
  • 添加了有关使用 Excel 2007 数据源的说明。
  • 添加了有关 SQL Server 2005 SP2 如何包括新日志记录消息的信息。使用这些消息,用户可以对此目标对外部数据访问接口所做的调用进行故障排除。

2006 年 7 月 17 日

更改的内容:
  • 说明了对目标的约束失败将导致批失败这一情况。
  • 改正了属性名称中的键入错误。

2005 年 12 月 5 日

更改的内容:
  • 提供了有关快速加载选项的详细信息。
  • 添加了需要修改所生成的表的定义的相关说明。