Mergeusing搭配用于特别是BI上数据统计和分析上 比如要求子表中没有的数据那么父表中就要删除对应的数据 保证子表和父表的数据对应 如果按照常规的做法是 跑个作业然后通过游标/表值函数/临时表等等循环的获取数据然后更新父表  这样是很浪费效率的  这时Merge派上用场了


原始数据:

select * from chartinfo;

select * from UserInfo;

SQL Server 之 Merge 与 using_ database

MERGE INTO UserInfo u
USING chartinfo c
ON u.UserId = c.UserId
WHEN MATCHED AND u.UserName = c.UserName
      THEN UPDATE SET u.lastUpdate = c.LastUpdate
WHEN NOT MATCHED 
--为not matched时不能为update(没有匹配成功 当然不能update了)
      THEN INSERT(UserName, Sex) VALUES( 'ZhangZhao', 'b' );

 

使用Merge查询之后:

select * from chartinfo;

select * from UserInfo;

SQL Server 之 Merge 与 using_ 数据库_02