Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSIS查找相关数据并添加(如果缺少)_Ssis - Fatal编程技术网

SSIS查找相关数据并添加(如果缺少)

SSIS查找相关数据并添加(如果缺少),ssis,Ssis,假设我有如下输入数据: firstName | lastName | Country 英国鲍勃·史密斯 简·多伊·法国 汉克天蝎座英国 目标表格包括: 人们 ID |名|姓|国ID 国家 ID| CountryName 0 |法国 现在,在SSIS数据流任务中,我读取输入,使用查找来搜索国家表中匹配的国家名称,如果没有问题,则返回ID并继续,但如果不存在,我希望使用OLEDBCommand在国家表中创建记录,获取ID并继续 然而,正在发生的是,英国两次通过OLEDB委员会 我应该如何处理这种情况

假设我有如下输入数据:

firstName | lastName | Country
英国鲍勃·史密斯
简·多伊·法国
汉克天蝎座英国

目标表格包括:

人们
ID |名|姓|国ID

国家
ID| CountryName
0 |法国

现在,在SSIS数据流任务中,我读取输入,使用查找来搜索国家表中匹配的国家名称,如果没有问题,则返回ID并继续,但如果不存在,我希望使用OLEDBCommand在国家表中创建记录,获取ID并继续

然而,正在发生的是,英国两次通过OLEDB委员会


我应该如何处理这种情况?是否有某种方法可以强制查找一次检查一条记录,因为它似乎是在添加丢失的记录之前检查一批记录。我已尝试将缓存选项更改为“完全”和“无”,以不产生任何影响。

您可以将缓冲区大小设置为1(每个缓冲区一行),并且在查找时不缓存,但即使如此,您仍有风险(因为SSI的并行化)让两行“同时”运行

然而,你能做的是以不同的方式来看待它。也许你不需要一步到位

首先,加载所有用户并对照国家/地区进行检查。对于那些没有的,汇总(基于国家),并将其插入到您的国家表中


然后,您可以使用普通查找加载所有用户,因为国家/地区表已预先填充。

谢谢,这非常有效。仍然留下了一个问题,“为什么我没有想到这一点”。