【问题标题】:Insert New Records / Ignore Existing Records / List Missing Records - SSIS插入新记录/忽略现有记录/列出缺失记录 - SSIS
【发布时间】:2015-04-29 09:20:29
【问题描述】:

我希望我能在这里得到一些关于如何在我正在开发的 SSIS 包中处理这种情况的建议。

首先是一点背景。我们举办分配了唯一驱动器 ID 的活动。并且每个事件可能有多个班次,这些班次分配了唯一的班次 ID。

我从 Oracle 源数据库中提取 ShiftID 和 PersonID(以及名字和姓氏)。我想更新现有 SQL Server 数据库中的特定表。

我看到执行操作时可能发生的三件事:

  1. 新记录被插入到表中
  2. 未更改的现有记录将被忽略
  3. 不插入不存在的班次 ID(可能发送到另一个表进行审计/记录保存)。

我知道如何处理场景 1,但我应该如何最好地处理场景 2 和 3?

【问题讨论】:

    标签: ssis lookup


    【解决方案1】:

    在 SSIS 中,答案将是渐变维度转换。但是,当它在 2005 年首次推出时,它的构建很糟糕,并且从那时起就没有得到维护或改进,例如(默默地)不支持 datetime2 数据类型。许多博客文章抱怨它的性能很慢(逐行执行),但我发现使用正确的索引策略确实可以。无论如何我不能推荐它。

    我会将数据流输出转储到暂存表(在目标 SQL Server 上),然后使用 SQL MERGE 命令来处理所有 3 个场景。编写大量代码后,您将拥有一个可靠、可扩展的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多