0

使用 SCD 任务向导,我无法设置 UpdateChangingAttributeHistory 属性,它默认为 false。我可以使用高级编辑器将其设置为 true,但这不会更新生成的流程,因此行为没有改变。我需要做什么来触发 SSIS 重新生成流而不重新运行向导(它将 UpdateChangingAttributeHistory 设置回 false)?

我的目标是拥有一个类型 2 的 scd,它可以在发生更改时更新事实表。

4

1 回答 1

1

我无法解释为什么 UpdateChangingAttributeHistory 复选框在向导中显示为灰色 - 这听起来很糟糕。但我可以告诉你它的作用。如果这是 False(默认值),它会将“更改属性更新输出”的 OLE DB 命令的 WHERE 子句更改为如下所示:

... WHERE [SomeKeyColumn] = ? AND [SCD_EndDate] IS NULL

如果您不使用日期,它将类似于 [CurrentRowFlag] = 'Y'

如果将该属性设置为 true,它将删除 WHERE 子句的该部分,以便所有具有类型 1 更改的行都将被更新,包括当前的和历史的。就是这样。这就是为什么如果您不重新生成组件,则该标志无效,因为 OLE DB 命令没有更改。

因此,您可以在更改属性更新输出中手动进行更改,但如果将来重新生成 SCD 组件,这些更改可能会丢失。
正如评论中所指出的,值得考虑使用其他组件创建此功能以提高性能和可维护性,特别是如果它一开始就很有趣。

于 2014-10-29T13:11:02.873 回答