OLE DB 目标
更新日期: 2006 年 12 月 12 日
OLE DB 目标用数据库表或视图或者用 SQL 命令,将数据加载到各种符合 OLE DB 的数据库中。例如,OLE DB 源可以将数据加载到 Microsoft Office Access 和 SQL Server 2005 数据库的表中。
注意: |
---|
若要将数据加载到使用 Microsoft Office Excel 2007 的数据源,请使用 OLE DB 目标。使用 Excel 目标无法将数据加载到 Excel 2007 数据源。有关详细信息,请参阅 OLE DB 连接管理器。 若要将数据加载到使用 Microsoft Office Excel 2003 或较低版本的数据源,请使用 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 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 目标包括输入列和目标数据源中的列之间的映射。您不必将输入列映射到所有目标列,但有时如果没有将输入列映射到目标列可能会出错,具体取决于目标列的属性。例如,如果目标列不允许出现空值,则必须将输入列映射到该列。另外,映射列的数据类型必须是兼容的。例如,不能将数据类型为字符串的输入列映射到数据类型为数值的目标列。
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 行组成的批。
注意: |
---|
目标中任何约束失败都将导致 FastLoadMaxInsertCommitSize 所定义的整批行失败。 |
除了在**“OLE DB 目标编辑器”对话框中公开的快速加载选项以外,还可以通过在“高级编辑器”**对话框的 FastLoadOptions 属性中键入选项,将 OLE DB 目标配置为使用以下大容量加载选项。
快速加载选项
说明
KILOBYTES_PER_BATCH
指定要插入的大小 (KB)。选项的格式为 KILOBYTES_PER_BATCH = <正整数值**>**。
FIRE_TRIGGERS
指定是否在插入表上激发触发器。选项的格式为 FIRE_TRIGGERS。出现该选项说明要激发触发器。
ORDER
指定输入数据如何排序。选项格式为 ORDER <列名称> ASC|DESC。可以列出任何列数,是否包括排序顺序是可选的。如果省略排序顺序,则插入操作假定数据不排序。
注意:
如果根据表中的聚集索引对要加载的数据排序,则可提高性能。
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 变量
创建包数据流
其他资源
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2006 年 12 月 12 日 |
|
2006 年 7 月 17 日 |
|
2005 年 12 月 5 日 |
|