我不知道是否可以这样做,但基本上,我有以下数据流:

现在,“步骤4”是一个场景,我只想在数据库中插入具有相应匹配的值,例如,XML有大约6000条记录,从这些记录中,我可能有10条记录需要对它们进行匹配并插入,而不是插入所有6000条记录,然后在事实之后进行比较(我也可以这样做,但希望有另一种方法)。我在想,我可能能够在OLE目标对象中执行一个sql insert命令,在该对象中,文件中的ID值与之匹配,但这一点我还没有100%清楚,或者甚至有可能。我是应该简单地通过临时表路由并在事实发生后清除数据,还是可以直接在目标块中这样做?如有任何建议,将不胜感激。
编辑
多亏了billinkc的最后一条评论,我设法接近了一点,在那里我可以识别匹配并使用结果集,但是不知怎么的,它似乎两次运行数据流,这很奇怪.我拿出了查找对象,看看它是否导致了它,不知怎么的,它为什么会在添加查找的情况下运行整个流两次呢?我总共应该有8个匹配,这是我在数据查看器输出中确认的,但是它似乎是第二次为同一个文件运行它。

发布于 2012-06-15 14:31:00
是否存在无法使用查找转换查找现有记录的原因?将其配置为将不匹配记录路由到无匹配输出,然后只将找到的匹配连接器连接到"Navigator暂存管理器基金“。
我相信这回答了你的问题,但我不知道你是否表达了正确的愿望?我的假设是查找将与现有目标相反,因此查找返回一行的id 10。SSIS中所有的开箱即用目的地都只执行插入,因此找到匹配的行现在将加倍。在寻找现有行时,这通常意味着要对现有行执行更新。如果是这样的话,就有一个特殊设计的转换,OLE DB命令。它是允许更新的组件。该组件存在性能问题,它会在每一行中发出一个update语句。十排的话,我觉得没问题。否则,您将使用的模式是将所有新行(插入)写入目标表,然后将所有已更改的行(更新)写入第二个暂存类型表。数据流完成后,然后使用Execute SQL Task执行基于集合的update语句。
有一些第三方选项可以处理组合的鞋帮。我知道语用作品有一个选项,而且任务和组成部分站点上可能还有其他的选项。
https://stackoverflow.com/questions/11051868
复制相似问题