处理插入、更新和删除

在用于执行变更数据的增量加载的 Integration Services 包的数据流中,第二个任务是分隔插入、更新和删除操作。 然后,可以使用相应的命令将它们应用到目标。

注意注意

为执行变更数据增量加载的包设计数据流的过程中,第一个任务是配置用于运行查询以检索变更数据的源组件。 有关此组件的详细信息,请参阅检索和了解变更数据。 有关用于执行变更数据增量加载的包的总体创建过程的说明,请参阅变更数据捕获 (SSIS)

关联友好值以分隔插入、更新和删除操作

在检索变更数据的示例查询中,cdc.fn_cdc_get_net_changes_<capture_instance> 函数仅返回名为 __$operation 的元数据列。 此元数据列包含一个序号值,该值指示哪个操作导致更改。

注意注意

有关使用和调用 cdc.fn_cdc_get_net_changes_<capture_instance> 函数的查询的详细信息,请参阅创建函数以检索变更数据

将序号值与其相应的操作匹配,不像使用操作的助记键那样容易。 例如,D 可以简便地表示删除操作,而 I 则可表示插入操作。 在主题创建函数以检索变更数据中创建的示例查询执行了此转换,即将序号值转换为新列中返回的友好字符串值。 下面的代码段显示了此转换:

    select 
        ...
        case __$operation
            when 1 then 'D'
            when 2 then 'I'
            when 4 then 'U'
            else null
         end as CDC_OPERATION

配置有条件拆分转换以定向插入、更新和删除操作

若要将变更数据行定向到三个输出中的一个输出,有条件拆分转换是理想的选择。 该转换只是检索各行中 CDC_OPERATION 列的值,并确定该变更是插入操作、更新操作还是删除操作。

注意注意

CDC_OPERATION 列包含一个从 __$operation 列中的数值派生的友好字符串值。

使用有条件拆分转换拆分要进行处理的插入、更新和删除操作

  1. 在**“数据流”**选项卡上,添加一个有条件拆分转换。

  2. 将 OLE DB 源的输出连接到有条件拆分转换。

  3. 在**“有条件拆分转换编辑器”**的下部窗格中,输入下面三行以指定三个输出

    1. 输入条件为 CDC_OPERATION == "I" 的行,以将已插入的行定向到插入操作的输出。

    2. 输入条件为 CDC_OPERATION == "U" 的行,以将已更新的行定向到更新操作的输出。

    3. 输入条件为 CDC_OPERATION == "D" 的行,以将已删除的行定向到删除操作的输出。

下一步

在拆分要处理的行之后,下一步是将更改应用到目标中。

下一个主题: 将变更应用到目标

集成服务图标(小) 使 Integration Services 保持最新

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


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

请参阅

任务

使用有条件拆分转换拆分数据集

概念

有条件拆分转换