关于Sql Server 中 Merge需要注意地方
2017-11-27 15:11
357 查看
我们经常使用Merge处理保存一个集合的情况,在更新一些关系表时非常常见:
1.集合中有并且数据库中也有,更新状态
2.集合中有,数据库中没有,插入
3.集合中没有,数据库中有的,删除
具体语法如下:
特别需要注意的是第3种,一定要控制好范围,否则会造成全表更新的情况!!!
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种,一定要控制好范围,否则会造成全表更新的情况!!!
相关文章推荐
- git fetch, merge, pull, push需要注意的地方(转)
- 关于cin.ignore()函数的一个需要注意的地方
- 关于u3d中需要注意一些地方
- 有关于eclipse配置spket需要注意的一些地方
- 关于Xib 需要注意的地方
- 关于将java测试代码移植到jmeter和loadrunner需要注意的地方
- 关于Servlet需要注意的地方
- 使用SQL Server 2014 In-Memory 内存数据库时需要注意的地方
- 关于SQL SERVER建立索引需要注意的问题
- [APP开发技巧] 关于对象、数字、地理位置使用上需要注意的地方
- git fetch, merge, pull, push需要注意的地方
- 关于Qt中QMap的一个需要注意的地方
- 关于x86下VB、C#、VC中的整数运算需要注意的地方
- 关于sizeof需要注意的地方
- c和c++关于struct需要注意的地方
- 关于thrift需要注意的地方
- 关于Android创建Activity需要注意的地方
- Qt中关于线程需要注意的地方
- git fetch, merge, pull, push需要注意的地方
- 关于相对布局中控件摆放位置的一个需要注意的小地方