我是SSIS的新手,我依赖于一本书,所以这应该是一个容易回答的问题。
我想从目录中的所有文本文件导入数据。所以我创建了一个Foreach容器。
我想在循环中做的第一件事就是执行一个SQL任务来删除并创建登陆表。
然后我想使用数据流任务从所选文本文件将数据加载到登陆表中。
然后我想执行一个SQL任务来从Landing表加载SQL表并进行一些计算。
问题是在Foreach循环中,我无法将SQL任务连接到数据流任务。我收到的消息是
无法创建连接器。不能 连接来自不同的可执行文件 容器
那我该怎么做?
答案 0 :(得分:2)
屏幕截图怎么样?我之前在循环容器中使用过这两个组件没有问题,我的猜测是GUI在这里有点欺骗。
答案 1 :(得分:2)
我知道这是一个老线程。我想添加它,以防它对任何人都有帮助。
在我的情况下,我有一个foreach循环容器,里面有一些FTP任务和脚本任务,我仍然需要在这个foreach循环中添加更多。我重命名了foreach循环,然后在foreach循环容器流的底部添加了一个新的Script Task。当我尝试将foreach循环容器流末尾的当前FTP任务连接到我在底部添加的新脚本任务时,我收到了“无法创建连接器”的错误。无法连接来自不同的可执行文件容器“。
所以我将当前的FTP任务和脚本任务拖到新重命名的foreach循环容器之外(或者我怀疑我可以剪切它们并将它们粘贴到foreach循环容器之外)。然后我将它们全部拖回到新重命名的foreach循环容器中。然后我再次成功连接它们而不会出现此错误。
所以看起来一旦你重命名一个foreach循环容器而没有完全完成,当你在新重命名的foreach循环容器的流程底部添加一个新的Task图标时,你可能会或将会得到关于不能执行的错误从不同的容器连接(因为我猜新重命名的foreach循环容器被认为是与同一个foreach循环容器的旧名称“不同”。
答案 2 :(得分:1)
我遇到了类似的问题,看起来两个组件都在for循环中。然而(类似于rageit的评论)其中一个子组件实际上是在顶部而不是在foreach循环中。
快速解决方法是剪切组件,选择foreach循环并将其粘贴。
答案 3 :(得分:0)
看起来您正在尝试将foreach循环中的Sql Task连接到不在循环中的DataFlow任务。如果这是您的意图,则需要从ForEach循环获取连接并将其连接到DataFlow。但是,如果您希望SQLTask和Dataflow都在ForEachLoop中运行,则需要将DataFlow放入ForEach循环,然后您就可以将SQLTask连接到DataFlow。
答案 4 :(得分:0)
没有我的情况。我只是将它从不同的容器移动到一个新容器。我不得不重新创建任务。没有属性可以显示容器正在执行任务。绝对是GUI bug。我正在使用BI 2008
答案 5 :(得分:0)
解决了我的问题的解决方案是切割组件并将其粘贴回来。如果存在任务层次,则逐个删除所有任务以删除其连接并将其粘贴回来然后从顶部连接。