OLE DB 目标

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

注意注意

如果数据源是 Microsoft Office Excel 2007,则数据源需要一个不同于早期版本 Excel 的连接管理器。有关详细信息,请参阅如何连接到 Excel 工作簿

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

  • 表或视图。可以指定现有的表或视图,也可以创建新表。

  • 使用快速加载选项的表或视图。可以指定现有的表或者创建新表。

  • 变量中指定的表或视图。

  • 使用快速加载选项在变量中指定的表或视图。

  • SQL 语句的运行结果。

注意注意

OLE DB 目标不支持参数。如果需要执行参数化 INSERT 语句,请考虑使用 OLE DB 命令转换。有关详细信息,请参阅 OLE DB 命令转换

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

注意注意

如果用 SSIS 设计器中的“OLE DB 目标编辑器”对话框创建 OLE DB 目标要向其插入数据的目标表,可能需要手动选择新创建的表。当 OLE DB 访问接口(如 OLE DB Provider for DB2)自动将架构标识符添加到表名称时,需要进行手动选择。

注意注意

“OLE DB 目标编辑器”对话框生成的 CREATE TABLE 语句可能需要修改,具体取决于目标类型。例如,某些目标不支持 CREATE TABLE 语句所使用的数据类型。

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

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

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

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

有关数据类型的详细信息,请参阅 Integration Services 数据类型

快速加载选项

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

  • 保持导入数据文件的标识值或使用由 SQL Server 分配的唯一值。

  • 在大容量加载操作过程中保留 Null 值。

  • 在大容量导入操作过程中检查目标表或视图的约束。

  • 在大容量加载操作期间获取表级锁。

  • 指定批中的行数和提交大小。

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

注意注意

目标中任何约束失败都将导致 FastLoadMaxInsertCommitSize 所定义的整批行失败。

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

快速加载选项

说明

KILOBYTES_PER_BATCH

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

FIRE_TRIGGERS

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

ORDER

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

注意注意
如果使用 ORDER 选项根据表中的聚集索引对输入数据排序,则性能可以得到提高。有关 ORDER 选项的重要性的详细信息,请参阅控制大容量导入数据时的排序顺序

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

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

OLE DB 目标故障排除

可以记录 OLE DB 目标对外部数据访问接口所做的调用。利用此日志记录功能,可以对 OLE DB 目标在执行将数据保存到外部数据源的操作进行故障排除。若要记录 OLE DB 目标对外部数据访问接口所做的调用,请在包级别启用包日志记录并选择**“诊断”**事件。有关详细信息,请参阅包执行故障排除

配置 OLE DB 目标

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

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

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

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

Integration Services 图标(小) 使 Integration Services 保持最新

若要从 Microsoft 获得最新的下载内容、文章、示例和视频,以及从社区获得所选解决方案,请访问 MSDN 或 TechNet 上的 Integration Services 页:

若要获得有关这些更新的自动通知,请订阅该页上提供的 RSS 源。