我已经创建了一个包来从两个SQL Server表中获取数据,并使用合并连接合并此数据,然后将结果存储到Excel目标中。如何覆盖SSIS中的Excel目标?
它第一次正常工作。第二次将重复的数据存储在Excel文件中。
如何覆盖Excel文件行?
我已经创建了一个包来从两个SQL Server表中获取数据,并使用合并连接合并此数据,然后将结果存储到Excel目标中。如何覆盖SSIS中的Excel目标?
它第一次正常工作。第二次将重复的数据存储在Excel文件中。
如何覆盖Excel文件行?
不幸的是,Excel连接管理器没有允许覆盖数据的设置。您需要使用控制流中的文件系统任务设置一些文件操作。
有几种可能性,这里有其中之一。您可以创建一个模板文件(其中只包含带有标题的工作表),并且在数据流转换之前,文件系统任务将其复制到先前导出的文件上。
很好的解决方法,+1! – Josien
是的,可能!
这里是解决方案:
首先去你的Excel目标点击旁边的Excel工作表的名称新建按钮,复制里面的DML查询。 然后将一个执行SQL任务放入您的控制流中,并将其连接到包含Excel目标的数据流。将连接类型设置到Excel,设置连接到你的Excel目标的Excel连接管理器,进入SQL语句和类型:
Drop TABLE `put the name of the sheet in the excel query you just copied`
Go
最后贴上后查询。
这是解决问题所需的一切。
您可以参考此链接为一个完整的信息: http://dwhanalytics.wordpress.com/2011/04/07/ssis-dynamically-generate-excel-tablesheet/
对于Excel会追加数据。没有这样的选项可用于覆盖数据。
您必须通过文件系统任务删除并重新创建文件。
是的,可能!
使用SSIS就可以解决这个问题:
首先,在一个位置和包装箱一个Excel格式文件(使用Excel连接管理器结构格式)创建使用文件系统,Excel文件的副本TASK另一个位置,并确保SET Is-Overwrite = True,并使用数据流任务将数据插入新文件复制文件。只要我们想要插入数据,它将创建空白的Excel文件,然后加载数据
优秀建议 - 在盒子外面思考!谢谢你manoj。 – AeyJey
您是否想要始终创建新文件,或者:插入新行,删除不存在的行并更新目标excel中的现有行? –