如何从SSIS Power Query Source结果集中更新SQL表

时间:2019-04-16 19:38:45

标签: sql sql-server ssis powerquery

在SSIS程序包中,我有一个“ Power Query”“源”步骤,结果为3列,“区域”,“设施”和“每周金额”。我对使用Power Query的Weekly_Amount列更新SQL表感兴趣,其中Region和Facility与SQL表记录相关。示例:

select * from "User" where email = "user@email.com"

我需要使用哪个SSIS步骤来完成上述任务?我总是可以包含一条T-Sql Update语句。

谢谢。

1 个答案:

答案 0 :(得分:1)

Oledb命令

您可以在数据流任务中使用OLEDB命令转换来做到这一点:

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

并将这些列映射到OLEDB Command配置表中的参数。

参考和有用的文章


登台表

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

您可以将数据导入到临时表中,并使用Execute SQL Task通过类似的查询来更新数据:

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