SSIS使用包含ID和更新值的平面文件更新行

时间:2011-04-06 02:55:13

标签: ssis

我是SSIS的新手,并尝试创建一个可以完成此类事情的数据流任务:

UPDATE dbo.table1
SET lastname = t2.lastname
FROM table1 t1
JOIN table2 t2
ON t1.Id = t2.Id

除了我想要将table2的值放在制表符分隔的文件中,如下所示:

ID姓氏
1卡罗尔
2 Patel
3史密斯

我不想让ETL表2进入数据库。

我尝试使用平面文件来提取值然后添加OLE DB数据目标,但是这会导致SSIS INSERT 值而不是加入ID和更新列出的字段。

使用SSIS进行此类更新的正确方法是什么?

TIA,

Trey Carroll

1 个答案:

答案 0 :(得分:2)

我就是这样做的:

  1. 设置数据流任务,平面文件为源。
  2. 添加查找转换,并进行设置,使其按ID查找表1并返回lastname。
  3. 将“执行OLE DB”命令转换添加到“成功”数据流,并执行相应的SQL代码以更新表1.
  4. 这种方法的结论是它为匹配的每一行执行SQL命令,并且该数字很高可能效率低下。如果您可以将平面文件加载到临时表,然后执行更新,那么效率会更高。

相关问题