找出数据流任务中受SQL命令变量影响的总行数

时间:2016-07-26 20:13:46

标签: csv ssis ssis-2012

我有 SQL命令从变量(通常它是一个Select语句)作为DataFlow任务中的源。 目的地为 .csv文件

问题:即使没有行受SQL命令的影响,变量.csv文件也会在没有记录的情况下生成。如果select语句(来自SQL命令变量)没有填充任何记录,我不想生成文件。

请告诉我。

1 个答案:

答案 0 :(得分:1)

简单程序: 您可以使用执行SQL任务在导出前使用查询计算行数,如果行数大于0,则继续导出;
以下是可能的解决方案:

  • 使用SELEC COUNT(*)AS MYCOUNT FROM ...
  • 之类的查询
  • 使用包变量(myVariable与MYCOUNT相关联)来包含行数
  • 在SQL任务编辑器中设置结果集=单行
  • 在SQL任务编辑器(MYCOUNT - myVariable)
  • 中的选项卡结果集中映射变量
  • 在每个箭头中使用Execute SQL Task中的两个箭头选择Evaluation operation:Expression,Expression:myVariable> 0(第一个箭头)和myVariable == 0(第二个箭头),选择Logical OR,这样你就会出现分叉!
  • 使用myVariable>连接导出到箭头0
  • 将另一个箭头连接到另一个可能的任务,例如它可以通过电子邮件警告您没有行

对于计数行也可以使用任务:行计数(存在于最新的SSIS版本中);行计数转换在行通过数据流时对行进行计数,并将最终计数存储在变量中。

我希望它有所帮助