在SSIS中将数据写入平面文件之前运行脚本组件



在我的SSIS包中,我需要修改将在数据流执行的最后一步创建的平面文件名。目前,我需要传输输入数据,通过脚本组件+做一个代码修改到一个变量,将形成一个平面文件组件连接字符串。应该写入的实际数据集是由Merge Join组件生成的,并且通过脚本组件传递它只是为了调用一个用户变量调整似乎是一种开销。

对于上述情况的最佳实践是什么?

如果文件名不依赖于数据中的任何内容,那么我会在控制流中使用Script Task而不是在数据流中使用Script Component来设置值。

如果文件名确实依赖于数据中的某些内容,那么脚本组件可能是获取该信息的最佳方式;然而,脚本组件不能更新PostExecute方法之外的任何ReadWrite变量(这将不会发生,直到所有的输入行被处理);这意味着变量更改将在输出文件名中反映而不是。在这种情况下,我建议在数据流完成后使用文件系统任务来重命名文件。

我个人会在之后使用重命名DOS命令。导出到一个固定的文件名,然后重新命名它。

最新更新