2011-04-06 103 views
0

我是新来的SSIS,并试图建立一个数据流任务,将完成这种类型的东西:SSIS更新行通过使用包含ID和更新平面文件值

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

除了我想

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

:与在这样的制表符分隔的文件是用于表2中的值做

我不想将ETL表2插入数据库。

我已用平面文件中的值拉,然后加上一个OLE DB数据目标尝试,然而,这会导致SSIS到INSERT的值,而不是接合上的ID和UPDATING列出的字段。

用SSIS解决此类更新的正确方法是什么?

TIA,

崔卡罗尔

回答

1

这是我会怎么做它:

  1. 设置一个数据流任务,用平面文件作为来源。
  2. 添加一个查找转换,并进行设置,以便按id查找表1并返回lastname。
  3. 添加一个执行OLE DB命令转换到你的“成功”数据流,并执行相应的SQL代码来更新表1

这种方法的con是,它的每一行执行的SQL命令相匹配,并且数量很高可能效率低下。如果您可以将平面文件加载到临时表中,然后执行更新,效率会更高。

+0

非常感谢santi。这正是我想要做的。记录的细节足够小,我不需要担心效率问题,但我很欣赏指导。 – 2011-04-19 16:36:59

+0

很高兴能有所帮助 – 2011-04-25 10:54:50