在SSIS中,如何查找ID值,如果不匹配,则插入值并返回ID

问题描述 投票:1回答:1

通过SSIS,我正在将分段的摘要加载到其主数据库中。该过程的一部分是使用LOOKUP获取字符串值的ID,如果不存在,则将其插入到引用表中(使用OLE DB COMMAND),然后通过后续查找返回该ID。

*SSIS Screenshot*

LOOKUP说即使插入后,前50个值也不匹配。有办法解决这个问题吗?还是我应该尝试另一种方法?

一些研究/尝试...

  1. 最初,没有返回任何匹配项。我不得不将所有查找都更改为“ No Cache”,这样它才能重新加载参考表(它们很小,所以我怀疑我会有很大的性能问题)。

  2. 我见过的另一种方法是将其多播到不同的查找中(基于我要查找的列),然后在成功插入/查找它们之后将它们合并在一起。但是据我所读,这种方法存在严重的性能问题。

我希望查找匹配或不匹配。如果不匹配,则插入新值;然后,再次查找ID的值(如果不匹配,则失败)。合并原始匹配项和原始不匹配项以进行下一次查找。

sql-server ssis lookup
1个回答
0
投票

尝试此模式:

enter image description here

1.You are multicasting the dataset and grouping by just your lookup column
2.inserting your lookup and adding the scopeidentity(lookupid) to you grouped data
3.joining in the data you inserted to effective add your lookup value to every row
4.unioning your data back in
© www.soinside.com 2019 - 2024. All rights reserved.