我有两个表至少有25列。
列名称相同。
每天我都会对列进行一些更改 一些被添加,一些被删除,一些被更改 我想使用merge来更新客户(目标表)来自updated_customers(源表)。
合并代码就是:
merge into customers trg
using
(
select
[customerid]
,[type]
,[first_name]
,[Last_Name]
,[Email]
,[Phone]
,[sale_status]
,[verification]
,[campName]
From updated_customers ) src
on src.[ customerid] =trg.[ customerid]
when matched then
update set
trg.[ customerid]=src.[ customerid]
,trg.[ type]=src.[ type]
,trg.[ first_name]=src.[ first_name]
,trg.[ Last_Name]=src.[ Last_Name]
,trg.[ Email]]=src.[ Email]]
,trg.[ Phone]=src.[ Phone]
,trg.[ sale_status]=src.[ sale_status]
,trg.[ verification]=src.[ verification]
,trg.[ campName]=src.[ campName]
when not matched then
insert(trg.[customerid],trg.[ type]…)
values(src.[ customerid],src.[type]…);
END
merge into customers as trg
using
(
select
distinct [customerid]
from updated_customers) src
on src.[customerid] =trg.[customerid]
when not matched then
insert(customerid, …..)
values(src.[customerid],…));
END
我如何一次为所有列做到这一点?
检查行中的更改
如果没有改变 - 什么也不做。
如果更改 - 更新更改并以某种方式标记。
如果添加(那不是问题)。
我至少有10张表来做同样的事情。