【问题标题】:Deleting rows from the destination that have been deleted from the source SSIS using Conditional Split使用条件拆分从目标中删除已从源 SSIS 中删除的行
【发布时间】:2018-03-28 14:43:08
【问题描述】:

我正在构建一个 SSIS 包,它当然会根据 Source 从目标中更新、插入和删除行。 插入和更新工作正常,但我无法从目标中删除已从源中删除的记录,如下图所示,我正在使用 excel 文件和 SQL Server 目标表进行测试。 我不知道我必须为条件拆分对象添加什么才能从目标中删除旧记录。 如果您注意到必须从目标中删除的记录,则会在数据库记录图像中突出显示。 下图是整个过程的一步一步:

【问题讨论】:

  • 如果您从源行开始,您将无法检测到丢失的记录。在目标表的行中添加另一个“源”框,并在两者之间执行完全连接。来自您的目的地与来源不匹配的记录将被删除。源中与目的地不匹配的记录将被添加,匹配的记录将(可能)更新。 stackoverflow.com/questions/15701859/…
  • 好,我试试看。
  • 谢谢,现在可以使用了!!!

标签: sql-server ssis data-warehouse


【解决方案1】:

解决方案: 正如 Ezequiel López Petrucci 在评论中解释的那样,我只需将我的目标表添加为另一个 OLE DB 源,然后对表进行排序,然后合并两个表(完全外连接)以比较记录,最后我改变了条件用于条件拆分转换。 图片在下面一步一步解释。

ETL Solution Runing

Source A

Both Sort

Merge Join

ConditionalSplitCondition

OLE DB Command to Delete unnecessary rows

【讨论】:

    猜你喜欢
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    相关资源
    最近更新 更多