Sql server 在SSIS错误中查找转换:不阻止插入已存在的记录
我有一个SSIS包,它从源读取数据,执行查找转换以检查目标中是否存在记录,如果存在记录,它将重定向到匹配输出并更新它,否则将重定向到不匹配输出并插入它。问题是,有时它会插入一条应该重定向以进行更新的记录。这是通过作业完成的,如果我手动执行包,一切都很好。使用匹配列正确设置了查找组件 我不知道为什么会发生这种情况,最愚蠢的是我无法调试它,因为手动操作一切正常Sql server 在SSIS错误中查找转换:不阻止插入已存在的记录,sql-server,ssis,etl,lookup,Sql Server,Ssis,Etl,Lookup,我有一个SSIS包,它从源读取数据,执行查找转换以检查目标中是否存在记录,如果存在记录,它将重定向到匹配输出并更新它,否则将重定向到不匹配输出并插入它。问题是,有时它会插入一条应该重定向以进行更新的记录。这是通过作业完成的,如果我手动执行包,一切都很好。使用匹配列正确设置了查找组件 我不知道为什么会发生这种情况,最愚蠢的是我无法调试它,因为手动操作一切正常 有什么想法吗 I上有两个选项,其中包含本应更新的插入内容 重复源值 首先,源数据中有重复的键,而目标表中没有 源数据 目的地数据 在这种情况
有什么想法吗 I上有两个选项,其中包含本应更新的插入内容 重复源值 首先,源数据中有重复的键,而目标表中没有 源数据 目的地数据 在这种情况下,假设在包开始执行之前,查找组件的默认行为为full cache,SSIS将运行查找引用表的源查询。只有缓存了所有查找表数据后,数据流才会成为流动数据
- 第一行,A:abc点击查找。不,没有数据,关闭插入路径
- 第二行B:bcd点击查找。不,没有数据,关闭插入路径
- 第三行A:cde点击查找。不,没有数据,关闭到插入路径(希望是主/唯一密钥冲突)
您的数据输入是否正确排序?@iamdave不正确,我是从暂存表中读取的。但是,根据主键,加载暂存的表具有一定的顺序。根据
查找中使用的键值对OleDB源中的输入数据进行排序。用于匹配的列的数据类型和查找的缓存模式是什么?日复一日,当我看到有价值的答案时,我感到沮丧已被忽略+1我正在使用完全缓存模式,我认为没有足够的内存来缓存目标表中的所有数据,因此它会看到某些行不存在。。。
Key|Value
A |abc
B |bcd
A |cde
Key|Value
C |yza
B |zab
Key|Value
A |abc
B |bcd
a |cde
Key|Value
C |yza
B |zab