SSIS数据stream任务在空文件任务后执行时,不会将logging写入excel文件

我正在编写一个SSIS包来从数据库中提取数据并将其每周写入一个excel文件。 每次卸载数据时,都必须从头开始重新生成excel文件。 我意识到我不能覆盖现有的文件,如果我在我的数据stream任务中使用Excel目标,所以我试图做到以下几点:

  1. 在数据卸载之前添加一个执行SQL任务,以使用以下SQL重新创build文件中的现有工作表

    DROP TABLE Users$

    GO

    CREATE TABLE Users$ ( Ref NVARCHAR(10), Username NVARCHAR(20), Active INT, Absent INT, Allow Reconciliation NVARCHAR(4), Prefix NVARCHAR(10), First Name NVARCHAR(25), Middle Name NVARCHAR(25), Last Name NVARCHAR(40), Suffix INT, Email NVARCHAR(33), Work Phone NVARCHAR(10), Required Approvals NVARCHAR(1), Division/Section Ref NVARCHAR(15), Grade Ref NVARCHAR(9), Cost Centre Ref NVARCHAR(15), Location Ref NVARCHAR(5), Last Hire Date NVARCHAR(10), Original Hire Date INT, Manager Ref INT, Approver Ref NVARCHAR(6), Gender NVARCHAR(6), Ethnicity NVARCHAR(25), Language NVARCHAR(5), Expiry Date NVARCHAR(10), Staff Category NVARCHAR(50), Source of Funding NVARCHAR(4), BAC Number INT, Title NVARCHAR(50) )

    GO

  2. 保留一个只有列标题的空文件模板,以确保列映射被保留,并且在数据stream任务之前使用脚本任务,用它replace任何现有的输出文件。

在这两种情况下,包成功执行,我看到在日志中说,logging被写入Excel文件,但是当我打开文件,我只看到标题行,没有数据。 我的印象是,当文件被replace或重新创build表单时,列映射会被搞砸,我不确定我可以如何继续。

编辑:我必须提到,单独执行数据stream任务结束了写入logging。 请告知谢谢

一个可能的解决scheme,完全未经testing,但它应该工作:

  1. 使用脚本任务将唯一值写入variables。 我build议一个GUID或基于date/时间的string。
  2. 首先执行数据stream任务,将数据与guid一起插入到单独的列中
  3. 在数据stream之后,针对excel文件运行脚本任务,删除guid列不等于variables值的行

唯一的问题是guid将保留在excel文件中。

希望有所帮助。