我已经创建了一个SSIS包,用于从CSV文件读取数据并加载到表1中。其他数据流任务在表1上查找。表1具有列x,y,z,a,b。表2有列a,b,y,z查找是基于列y和z完成的。根据列y和z,它从表1中提取a和b并更新表2。问题是数据得到更新,但我得到多行数据这是一个没有更新和一个更新后。SSIS查找数据更新
如果需要,我可以提供更清晰的解释。
我已经创建了一个SSIS包,用于从CSV文件读取数据并加载到表1中。其他数据流任务在表1上查找。表1具有列x,y,z,a,b。表2有列a,b,y,z查找是基于列y和z完成的。根据列y和z,它从表1中提取a和b并更新表2。问题是数据得到更新,但我得到多行数据这是一个没有更新和一个更新后。SSIS查找数据更新
如果需要,我可以提供更清晰的解释。
充实Nick的建议,我会摆脱你的第二个数据流(从表2到表2)。
在填充表1的第一个Dataflow后,只需执行一个EXECUTE SQL任务,该任务在表2上执行UPDATE,然后连接到表1以获取新数据。
编辑回应评论:
您需要使用WHERE子句将唯一匹配的行。显然Model_Cd
不是JLRMODEL_DIMS
中的唯一列。如果由于两个表之间的关系而无法使WHERE子句独一无二,那么您需要选择合计[Length (cm)]
,如MIN()
,MAX()
等,或者您需要使用TOP 1
,以便您只从子查询中获得一行。
请提供所需的帮助专家! – Ritu
你绝对需要更清楚的解释。 '没有更新和一个更新'是什么意思?也许你应该学会做这在更新语句而不是在SSIS –
“一个没有更新用和一个与更新用”摆弄的意思是指我有一个数据行EVENT_ID \t Model_Dsc \t Model_Cd \t Derivative_Cd \t VIN \t长度(cm)\t宽度(厘米)\t身高(cm) L405览胜\t \t T1 QVBW \t \t NULL NULL NULL \t \t NULL AFER更新用 - EVENT_ID \t \t Model_Dsc Model_Cd \t \t Derivative_Cd VIN \t长度(cm)\t宽(cm)\t身高(cm) L405览胜\t \t T1 QVBW \t \t NULL 5199 \t \t 2073 NULL理想我应该只得到1行,第二行。 – Ritu