我们经常使用Merge处理保存一个集合的情况,在更新一些关系表时非常常见:

    1.集合中有并且数据库中也有,更新状态

              2.集合中有,数据库中没有,插入

              3.集合中没有,数据库中有的,删除

        具体语法如下:        

MERGE INTO [dbo].[Relation] AS R
USING @Table AS T ON R.[GroupId] = @groupId AND R.Id = T.[Id]
WHEN MATCHED THEN 
       UPDATE SET R.[IsDel] = 0    
WHEN NOT MATCHED THEN 
       INSERT ..... VALUES.....
WHEN NOT MATCHED BY SOURCE AND R.[GroupId] = @groupId THEN
       UPDATE SET R.[IsDel] = 1;

        特别需要注意的是第3种,一定要控制好范围,否则会造成全表更新的情况!!!

相关文章:

  • 2021-12-19
  • 2021-06-27
  • 2021-08-26
  • 2021-12-25
  • 2021-12-24
  • 2021-09-13
  • 2021-10-12
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-14
  • 2022-12-23
  • 2021-11-30
  • 2022-12-23
相关资源
相似解决方案