如果特定记录(主键列)已存在于目标表中,如何检入SSIS,如果存在则更新,否则插入它。
我在网上搜索了好几个小时但找不到确切的解决方法。请提出解决方案。
答案 0 :(得分:4)
答案 1 :(得分:0)
这是另一种选择 - 代码少得多,运行速度非常快。
首先使用缓存转换加载查找缓存,其中包含要从目标表中保留的任何列(至少是代理键和业务键)。然后截断目标表。然后在主数据流的末尾,使用缓存添加Lookup,在Business Key上加入,并返回要保留的所有列。匹配输出转到OLE DB目标,并选中保持标识(以保留您的代理键)。无匹配输出转到单独的OLE DB目标。两个目的地都必须取消选中表锁(以避免死锁),但可以使用快速加载。
答案 2 :(得分:0)
首先,我们需要检查Destination中使用查找转换的记录。如果接收记录与现有数据不匹配,那么它就是新记录,否则就是旧记录。