【问题标题】:SSIS - truncate table when other table contains data with certain valueSSIS - 当其他表包含具有特定值的数据时截断表
【发布时间】:2017-01-19 13:08:58
【问题描述】:

我在 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。

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

有什么建议吗?

【问题讨论】:

    标签: sql-server tsql ssis


    【解决方案1】:

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

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

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

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

    【讨论】:

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