我正在创建一个SSIS包,以增量方式将数据从Excel表格(从iSeries数据库导出)加载到SQL表中,目前遇到的问题是确定哪些记录要更新,哪些记录要插入数据流,我已经看到通过执行术语查找来完成,所以我设置了一个术语查找,遇到的问题是我需要匹配多个列才能比较唯一的行(在下面的示例中,我至少需要匹配父项、seen和RoutingCode ),而术语查找转换只允许匹配一列。现在,从理论上讲,我可以将成功的匹配输出到第二次查找和第三次查找,但这似乎是一个转折的解决方案,并且输入行数过多可能会降低性能,所以我正在寻求更有经验的DBA的任何建议。
示例数据:
Parent 2nd Itm# 3rd Itm# Routing Code UpdatedColumn
------- ----------- ----------- -------------- -------------
921221 TF2-14511 TF2-14511 PLANNING 1568
921221 TF2-14511 TF2-14511 COAT&CAP 14545
921221 TF2-14511 TF2-14511 S.S 0-OVERLAPS 45556
842568 TF2-14511 TF2-14511 PLANNING 4545发布于 2012-11-08 05:39:00
将数据从Excel电子表格加载到SQL Server数据库上的临时表中。然后使用查询或存储过程(理想情况下是存储过程)比较临时表和要插入或更新数据的目标之间的数据。如果您使用的是SQL Server2008或更高版本,您可以使用可以比较源和目标表的MERGE语句来INSERT或UPDATE记录。
您可以使用Data Flow Task将数据从Excel加载到SQL Server临时表。在控制流上,可以在数据流任务之后放置一个Execute SQL Task,以调用将包含MERGE语句的存储过程。
https://stackoverflow.com/questions/13278465
复制相似问题