【问题标题】:SSIS Update derived columns to tableSSIS 将派生列更新到表
【发布时间】:2015-07-28 17:55:11
【问题描述】:

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

【问题讨论】:

  • 使用 OLEDB 命令转换。
  • 你能详细说明一下吗?
  • 您是想用固定值更新您在“OLE DB 源”中引入的同一个表,还是要将固定值插入到不同的目标表或其他什么?跨度>

标签: sql-server ssis split conditional derived


【解决方案1】:

假设您的源表中有列 col_pk、col1、col2、col3、col4 的表 Testcol_pk 是主键,col1col3 有错误。

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

现在在派生列转换之后说你已经纠正了错误并且你有 2 个新列 col1_new 和 col3_new

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

你现在需要做什么:

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

    更新测试

    SET col1 = Col1_new,Col2 = Col2_new

    来自测试

    INNER JOIN 测试_新

    开启 Test.col_pk = Test_new.col_pk

就是这样!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多