我正在尝试使用应该替换合并语句的更新和插入语句运行 adf 复制管道。基本上是这样的声明:
UPDATE TARGET
SET ProductName = SOURCE.ProductName,
TARGET.Rate = SOURCE.Rate
FROM Products AS TARGET
INNER JOIN UpdatedProducts AS SOURCE
ON TARGET.ProductID = SOURCE.ProductID
WHERE TARGET.ProductName <> SOURCE.ProductName
OR TARGET.Rate <> SOURCE.Rate
INSERT Products (ProductID, ProductName, Rate)
SELECT SOURCE.ProductID, SOURCE.ProductName, SOURCE.Rate
FROM UpdatedProducts AS SOURCE
WHERE NOT EXISTS
(
SELECT 1
FROM Products
WHERE ProductID = SOURCE.ProductID
)
如果目标是 azure sql db,我会使用这种方式:https ://www.taygan.co/blog/2018/04/20/upsert-to-azure-sql-db-with-azure-data-factory 但是如果目标是 adw,则存储过程选项不存在!有什么建议吗?我必须先有一个临时表然后我运行更新和插入语句从 stg_table 到 target_table?或者也许有可能直接从 adf 做到这一点?