如何根据数据的存在通过snaplogic管道插入到SQL表中

问题描述

我是 snaplogic 的新手。我在 sql Server 中有 2 个表(A,B),如下所示。我需要根据B中numberID的存在,将A表中的数据插入到B表中。

  • 如果 B 中存在 A 的 numberID,我需要更新 B 中的名称
  • 如果 B 中不存在 A 的 numberID,我必须在表 B 中插入该行。

我想知道如何进行大小写分离。我想使用路由器或条件快照,但我不明白如何将它们与 sql 查询的结果一起使用。我需要帮助。

解决方法

您可以使用合并功能

MERGE INTO B AS Target  
USING (select * from A)  
       AS Source 
ON Target.id = Source.id  
WHEN MATCHED THEN  
UPDATE SET B.Name = Source.Name
WHEN NOT MATCHED BY TARGET THEN  
INSERT (Name) VALUES (source.NewName)  

https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql?view=sql-server-ver15