在使用ssis清除表之前,检查查找是否产生任何有效的插入行

时间:2010-05-27 15:46:34

标签: ssis

SSIS无知需要帮助!

情况: 从excel文件中填充临时表,该文件已知随机时间更改格式,由另一个组拥有。需要在临时表tableA上执行查找,以使用有效数据填充tableB。如果查找结果返回0行,则应发送电子邮件,并且表B中的现有数据应保持不变。如果查找导致许多有效行> 0,tableB应删除所有行,并插入tableA上查找的新记录。

问题: 什么是检查是否有任何有效行并执行相应操作的最佳方法,具体取决于我的结果?

谢谢!

1 个答案:

答案 0 :(得分:0)

将查找的匹配输出连接到行计数变换,该变换将在包变量中存储已找到行的计数。在控制流中,将数据流任务(使用查找)连接到执行SQL以执行删除。通过右键单击约束并选择“编辑”,将表达式添加到数据流和执行SQL之间的约束。添加类似“@myRowCountVariable> 0”的条件 - 这将阻止执行Sql任务运行,除非行计数大于0.将Execute Sql连接到另一个数据流以执行插入。

您可以添加“发送邮件”任务,并使用“@ myRowCountVariable == 0”之类的表达式将其连接到原始数据流,以控制是否发送电子邮件。