【问题标题】:SSIS: Truncate Excel DestinationSSIS:截断 Excel 目标
【发布时间】:2017-04-17 13:34:15
【问题描述】:

我正在创建一个 SSIS 包,它将数据从 SQL Server Source 导入到 Excel Destination

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

【问题讨论】:

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


    【解决方案1】:

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

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

    有用的链接

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-06
        相关资源
        最近更新 更多