在导入SSIS之前删除文本文件的内容

问题描述:

我有一个SSIS包,它循环通过文件位置将数据从多个平面文件导入到一个SQL Server表目的地。文件中的某些数据行无法处理,因此任何失败的数据都会发送到单独的平面文件目标。在导入SSIS之前删除文本文件的内容

我的问题是,如果我检查Overwrite data in the file框,我只收到3行数据中的数千。如果我取消选中该框,则会得到一张更真实的图片,其中有超过一百张记录因某种原因无法处理。每当包运行时,我都不能这样保留,上次运行的内容仍然存在。

我的问题是为什么会发生这种情况,我该如何解决它?

Data Flow Task位于For Each Loop容器中,所以我怀疑每次循环运行时都会覆盖发送到失败行平面文件的所有数据。但是,循环结束处的数据来自循环得到的第一个文件。

我可以编写一些SQL脚本以防止这种情况发生?

在每次运行时,在for循环之前,删除文件(如果存在)并创建一个新文件,然后不要覆盖。

如果您想保留先前运行的历史记录,可以使用运行ID或日期时间值后缀该文件。如果你这样做,你也可以运行一个清理工作,只保留一些文件的特定数字或日期范围内。

+0

谢谢Jayvee,效果很好。我是SSIS的新手,所以仍然在工具包的选项范围内寻找方法! – SSingh

+1

请点击此答案旁边的复选标记以结束此问题。 –