源有0行时不创建文件

Phi*_*lip 6 sql-server ssis etl flat-file flatfiledestination

我在数据流区域内有以下内容.我遇到的问题是,即使结果为0,它仍然在创建文件.

谁能看到我在这里做错了什么?

在此输入图像描述

在此输入图像描述

在此输入图像描述

Ale*_*lok 3

这几乎是预料之中的、众所周知的令人讨厌的行为。即使未选中“第一个数据行中的列名”,SSIS 也会创建一个空的平面文件。

解决方法是:

  • @RowCountWriteOff = 0如果恰好在执行数据流之后,则通过文件系统任务删除此类文件。

  • 作为替代方案,如果源中的预期行数为 0,则不要启动数据流: 在此输入图像描述


2019-02-11 更新:

我遇到的问题是,我在数据流中有 13 个导出到 csv 命令,而且它们是昂贵的查询

  • 然后,双重查询源来检查行计数会更加昂贵,并且可能更好地重用变量 @RowCountWriteOff 的值。
  • 初始设计有 13 个数据流,添加 13 个约束和 13 个文件系统任务,主控制流将使包更加复杂且难以维护
  • 因此,建议使用OnPostExecute事件处理程序,以便将清理逻辑隔离到某些特定的数据流:

在此输入图像描述