SSIS - 当其他表包含具有特定值的数据时截断表



我在 2 个不同的数据库上有 2 个表。

当数据库 A 中的表 A 包含数据并且某个值写入特定列时,我需要截断数据库 B 上的表 B 并将数据从表 A 复制到表 B。

因此,当表 A 如下所示时:

ID | column2
1  | null
2  | null
3  | null 

然后我们什么都不做。

如果表 A 看起来像

ID | column2
1  | value
2  | value
3  | value

然后表 B 被截断,表 A 中的数据被复制到表 B。

我尝试了执行SQL任务,但这仅适用于所有表都来自同一数据库的情况。

有什么建议吗?

如果尝试在 SSIS 中执行此操作,请在控制流中运行一个Execute SQL Task,该对Table A中符合条件的记录进行计数,并将变量设置为true(如果有)或false(如果有)。

创建从Execute SQL Task到要执行truncateinsert语句的连接。 右键单击箭头并选择Edit...以设置Condition,如果您刚刚设置的变量TrueFalse遵循该路径或不遵循该路径。

创建与控制流中下一步的连接(如果有),并将此连接的LogicalAnd属性更改为false。 您应该看到箭头发生了变化,以显示不同的优先级行为。 创建从原始Execute SQL Task到控制流中的下一步的另一个连接。 此箭头也应该看起来不同。

现在,当您运行此包时,将设置变量,truefalse是否truncateinsert,然后遵循控制流中的正确路径。 一旦这些路径中的任何一个命中下一步(其中只有一个应该执行),您的包将继续正常进行。

相关内容

最新更新