首页 > 解决方案 > 当源有 0 行时不创建文件

问题描述

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

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

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

标签: sql-serverssisetlflat-fileflatfiledestination

解决方案


这是几乎预期和已知的烦人行为。SSIS 将创建一个空的平面文件,即使未选中:“第一个数据行中的列名”。

解决方法是:

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

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


2019-02-11 更新:

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

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

在此处输入图像描述


推荐阅读