SSIS - 使用SSIS创建SQL表,加载数据,运行代码和删除表

时间:2015-02-06 01:20:34

标签: ssis

我是SSIS的新手,如果这是一个重复的帖子,或者只是一个愚蠢的问题,请提前道歉。

我正在尝试在SSIS中创建以下过程:

1- [SQL Execute Task] Create Table in SQL DB 
2- [Data Flow Task] Load Data from a source file (.xls) into the Created SQL table 
3- [SQL Execute Task] Run Code on Created SQL table 
4- [SQL Execute Task] Drop the SQL table that was created 

我遇到的问题是当我设置我的OLE DB目标时,它想要一个已经创建的表。我试图创建表然后运行该过程,它第一次工作,但第二次表示该表不存在的错误,即使它正在跳过创建表的第1步。

关于解决方案的任何想法,还是我错过了一些非常明显的东西?

提前致谢!

1 个答案:

答案 0 :(得分:3)

首先,为什么每次都放弃桌子?您的软件包将需要表的一致元数据,那么为什么不截断它并将其保存以用于下一次加载?对于SSIS包,这是一种非常糟糕的方法。

它失败的原因是因为SSIS同时对所有组件进行了设计时和运行时验证,所以它看到的只是表中不存在的表。

但是如果你的心脏设置在这种方法上,则需要将目标组件的ValidateExternalMetadata属性设置为false。只要组件上的外部列与CREATE TABLE语句生成的实际列匹配,就可以了。