您的位置:首页 > 数据库

关于Sql Server 中 Merge需要注意地方

2017-11-27 15:11 357 查看
  我们经常使用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种,一定要控制好范围,否则会造成全表更新的情况!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: