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

Ssis SSI使用包含ID和更新值的平面文件更新行,ssis,Ssis,我是SSIS新手,尝试创建一个数据流任务来完成这类任务: UPDATE dbo.table1 SET lastname = t2.lastname FROM table1 t1 JOIN table2 t2 ON t1.Id = t2.Id 除了我想将表2的值放在一个以制表符分隔的文件中,如下所示: ID lastname 1卡罗尔 2帕特尔 3史密斯 我不想将表2 ETL到数据库中 我曾尝试使用平面文件拉入值,然后添加OLE DB数据目的地,但这会导致SSI插入值,而不是在ID上连接并更新列

我是SSIS新手,尝试创建一个数据流任务来完成这类任务:

UPDATE dbo.table1
SET lastname = t2.lastname
FROM table1 t1
JOIN table2 t2
ON t1.Id = t2.Id
除了我想将表2的值放在一个以制表符分隔的文件中,如下所示:

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

我不想将表2 ETL到数据库中

我曾尝试使用平面文件拉入值,然后添加OLE DB数据目的地,但这会导致SSI插入值,而不是在ID上连接并更新列出的字段

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

蒂亚

特雷·卡罗尔(Trey Carroll)

我就是这样做的:

  • 以平面文件作为源,设置数据流任务
  • 添加一个查找转换,并将其设置为按id查找表1并返回lastname
  • 将Execute OLEDB命令转换添加到“on success”数据流中,并执行适当的SQL代码以更新表1

  • 这种方法的缺点是,它对匹配的每一行都执行SQL命令,如果该行数太高,则效率可能会很低。如果您可以将平面文件加载到临时表中,然后执行更新,则效率会更高。

    非常感谢santi。这正是我想做的。记录的数量足够小,我不需要担心效率问题,但我很感谢您的指导。