我在数据流区域内有以下内容。我遇到的问题是,即使结果为 0,它仍在创建文件。
谁能看到我在这里做错了什么?
这是几乎预期和已知的烦人行为。SSIS 将创建一个空的平面文件,即使未选中:“第一个数据行中的列名”。
解决方法是:
2019-02-11 更新:
我遇到的问题是我在数据流中有 13 个导出到 csv 命令,它们是昂贵的查询
OnPostExecute
事件处理程序,因此清理逻辑与某些特定数据流隔离:根据您的评论,我将假设您想使用 SQL 命令遍历许多表,检查表是否包含行,如果是,那么您应该将行导出到平面文件,否则您应该忽略这些表。我将提及您实现该目标所需的步骤,并提供包含每个步骤的更多详细信息的链接。
Execute SQL Task
带有计数的命令SELECT COunt(*) FROM ....)
并将结果集存储在一个变量中@[User::RowCount] > 0
此外,最好检查我提供的链接,因为它们包含许多有用的信息和分步指南。
防止 SSIS 创建空的平面文件是一个常见问题,您可以在网上找到很多参考资料,建议了许多解决方法和许多可能解决问题的方法:
Data Flow Task
Delay Validation
属性设置为True
Data Flow Task
,它将仅用于计算 Source 中的行数,如果它大于0
则优先约束应该导致另一个Data Flow Task
File System Task
后添加一个,您应该设置优先约束表达式以确保这一点。Data Flow Task
o
Data Flow Task
Delay Validation
属性设置为True