【问题标题】:How to update a SQL table from an SSIS Power Query Source resultset如何从 SSIS Power Query Source 结果集中更新 SQL 表
【发布时间】:2020-02-14 04:02:55
【问题描述】:

在 SSIS 包中,我有一个“Power Query”源步骤,该步骤产生 3 列,即 Region、Facility 和 Weekly_Amount。我有兴趣使用 Power Query 的 Weekly_Amount 列更新 SQL 表,其中 Region 和 Facility 与 SQL 表记录相关。示例:

Update {Some table}
set {SQL Table}.Weekly_Amount = {PowerQuery}.Weekly_Amount 
where {SQL Table}.Region = {PowerQuery}.Region
and {SQL Table}.Facility = {PowerQuery}.Facility

我需要使用什么 SSIS 步骤才能完成上述操作?我总是可以包含一个 T-Sql 更新语句。

谢谢。

【问题讨论】:

    标签: sql sql-server ssis etl powerquery


    【解决方案1】:

    Oledb 命令

    您可以在数据流任务中使用 OLEDB 命令转换来执行此操作:

    Update {SQL Table}
    set {SQL Table}.Weekly_Amount = ?
    where {SQL Table}.Region = ?
    and {SQL Table}.Facility = ?
    

    并将列映射到 OLEDB 命令配置表单中的参数。

    参考和有用的文章


    暂存表

    从性能角度不建议使用 OLEDB 命令,因为它会为数据管道中的每一行执行更新语句。

    您可以将数据导入临时表并使用执行 SQL 任务通过类似查询更新数据:

    Update {SQL Table}
    set {SQL Table}.Weekly_Amount = {Staging Table}.Weekly_Amount
    FROM {SQL Table} INNER JOIN {Staging Table} 
        ON {SQL Table}.Region = {Staging Table}.Region 
        AND {SQL Table}.Facility = {Staging Table}.Facility
    

    【讨论】:

    • 嗨哈迪,非常感谢。它完成了工作!尤其是第一个链接非常有帮助。
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 2019-04-17
    • 2022-01-19
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    相关资源
    最近更新 更多