SSIS Update派生列到表

时间:2015-07-28 17:55:11

标签: sql-server ssis split conditional derived

我一直在尝试修复错误字段中的一些数据错误,并设法通过派生列来完成。我的派生列包含已修复的字段。如何将它们更新为包含错误放置字段错误的现有表行?

enter image description here

1 个答案:

答案 0 :(得分:1)

假设您的表测试,表格中包含列col_pk,col1,col2,col3,col4。 col_pk 是主键,您在 col1 col3 中有错误。

  

我假设现有的表行包含错误放置字段的错误"您想要更新在OLE DB源中使用的同一个表

现在,在派生列转换后,您已更正错误,并且您有2个新列col1_new和col3_new

  

(您也可以给它们相同的名称并替换现有的列,   此替换将是SSIS内部并且不会影响您的数据库,写这个因为我不清楚问题你可能会感到困惑   在此替换)

您现在需要做的事情:

  1. 创建OLE DB目标任务,并将派生列转换的输出链接为其输入
  2. 在任务中,创建一个新表,比如Test_new。它将根据OLE DB目标的输入为您提供自动创建选项。 (您只需要将col_pk,col1_new和col3_new映射到目的地)
  3. 在控制流程中,创建一个执行SQL任务,并编写一个查询来更新Test表,如:

    更新测试

    SET col1 = Col1_new,Col2 = Col2_new

    FROM Test

    INNER JOIN Test_new

    ON Test.col_pk = Test_new.col_pk

  4. 这就是全部!