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