更新2019-02-11:
我的问题是我在数据流中有13个导出到csv的命令,它们是昂贵的查询
OnPostExecute
事件处理程序,这样清理逻辑就被隔离到某个特定的数据流中:1 == 1
。 - Alexander Volok根据您的评论,我将假设您想使用SQL命令循环遍历许多表,检查表是否包含行,如果是,则应将行导出到平面文件中,否则应忽略表。我将提到您需要实现这些步骤,并提供包含每个步骤更多详细信息的链接。
Execute SQL Task
,其中包含计数命令SELECT COunt(*) FROM ....)
,并将结果集存储在变量中@[User::RowCount] > 0
另外,检查我提供的链接是很好的,因为它们包含许多有用的信息和逐步指南。
防止SSIS创建空平面文件是一个常见问题,在线上可以找到很多参考资料,有许多解决方法和许多方法可能解决这个问题:
Data Flow Task
的Delay Validation
属性设置为True
Data Flow Task
,仅用于计算源中的行数,如果大于0
,则先决条件应导致其他Data Flow Task
Data Flow Task
之后添加一个File System Task
,如果RowCount为o
,则删除输出文件,您应该设置先决条件表达式以确保这一点。数据流任务的延迟验证属性设置为 True