Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS:截断Excel目标_Sql Server_Excel_Ssis_Etl_Ssis 2012 - Fatal编程技术网

Sql server SSIS:截断Excel目标

Sql server SSIS:截断Excel目标,sql-server,excel,ssis,etl,ssis-2012,Sql Server,Excel,Ssis,Etl,Ssis 2012,我正在创建一个SSIS包,该包将数据从SQL Server源导入Excel目标 如何在运行前截断电子表格? 我尝试了以下方法(使用执行SQL任务),但没有成功 Jet提供程序不支持truncate或delete命令。您有3种解决方法: 在运行数据流之前克隆一个空的excel模板,或 在运行数据流之前,使用“执行sql任务”创建新工作簿/选项卡 使用Drop Table Call\u Log删除工作表并创建一个新的工作表。有关详细信息,请参阅此 有用的链接 不支持截断。您可以使用两个任

我正在创建一个SSIS包,该包将数据从
SQL Server源导入
Excel目标

如何在运行前截断电子表格? 我尝试了以下方法(使用
执行SQL任务
),但没有成功


Jet提供程序不支持truncate或delete命令。您有3种解决方法:

  • 在运行数据流之前克隆一个空的excel模板,或
  • 在运行数据流之前,使用“执行sql任务”创建新工作簿/选项卡
  • 使用Drop Table Call\u Log
删除工作表并创建一个新的工作表。有关详细信息,请参阅此 有用的链接


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

  • 第一个任务是删除目标xls文件的文件任务
  • 第二个任务是执行SQL任务,它将创建“表”(excel工作表)。将excel连接类型与excel连接管理器一起使用,并创建表语句
  • 如果您不知道CREATE TABLE语句的确切形式,请尝试首先在数据流任务中准备excel目标,然后通过创建新的excel工作表(通过在excel目标编辑器中按“连接管理器”选项卡上的“新建”按钮),SSIS设计器将显示您所需的CREATE TABLE语句

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

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