SSIS:截断Excel目标

时间:2017-04-17 13:34:15

标签: sql-server excel ssis etl ssis-2012

我正在创建一个SSIS包,用于将数据从SQL Server Source转换为Excel Destination

如何在运行之前截断电子表格? 我尝试了以下方法(使用Execute SQL Task但没有成功。

enter image description here

2 个答案:

答案 0 :(得分:3)

Jet提供程序既不支持截断也不支持删除命令。您有3个解决方法:

  • 在运行数据流之前克隆一个空的Excel模板,或
  • 在运行数据流之前使用execute sql task创建新的工作簿/选项卡
  • 使用Drop Table TableCall_Log删除工作表并创建一个新工作表。您可以参考此Link了解更多详情。

有用的链接

答案 1 :(得分:0)

不支持截断。您可以使用以下两个任务来重新创建整个excel文件:

  1. 第一个任务是“文件”任务,该文件将删除目标xls文件。
  2. 第二个任务将是“执行SQL任务”,它将创建“表”(Excel工作表)。将EXCEL连接类型与excel连接管理器和CREATE TABLE语句一起使用。

如果您不知道CREATE TABLE语句的确切形式,请尝试首先在数据流任务中准备excel目标,并通过创建新的excel工作表(通过在Excel Destination编辑器中按“连接管理器”选项卡上的“新建”按钮)来设计将显示您所需的CREATE TABLE语句。

如果不确定每次运行软件包时excel文件都存在,请使用“完成约束”将第一个任务连接到第二个任务。

对于前两个任务之后的任务,您可能还需要将DelayedValidation属性设置为True。