如果记录已经存在,如何检查ssis

时间:2012-10-15 13:28:41

标签: sql-server ssis

如果特定记录(主键列)已存在于目标表中,如何检入SSIS,如果存在则更新,否则插入它。

我在网上搜索了好几个小时但找不到确切的解决方法。请提出解决方案。

3 个答案:

答案 0 :(得分:4)

互联网上的一些例子: Anatomy of incremental load

Another example

这些应该给你详细的例子。

答案 1 :(得分:0)

这是另一种选择 - 代码少得多,运行速度非常快。

首先使用缓存转换加载查找缓存,其中包含要从目标表中保留的任何列(至少是代理键和业务键)。然后截断目标表。然后在主数据流的末尾,使用缓存添加Lookup,在Business Key上加入,并返回要保留的所有列。匹配输出转到OLE DB目标,并选中保持标识(以保留您的代理键)。无匹配输出转到单独的OLE DB目标。两个目的地都必须取消选中表锁(以避免死锁),但可以使用快速加载。

答案 2 :(得分:0)

首先,我们需要检查Destination中使用查找转换的记录。如果接收记录与现有数据不匹配,那么它就是新记录,否则就是旧记录。