首页 SQLServer sqlserver MERGE用法,在查询时根据匹配进行修改,添加和删除数据操作

sqlserver MERGE用法,在查询时根据匹配进行修改,添加和删除数据操作

作者:胡同里的砖头 围观群众:111 更新于:2024-06-13

merge集插入,更新,删除于一体,如果要对一个表同时进行插入,更新,删除2个或3三个操作。效率要高于单个操作。

第一种写法:

merge into tableb b --被操作表
using (select * from a) a–参照表 支持子查询
on a.id=b.id–关联关系
when matched --a,b表均匹配到做update
then update set b.nme= b.nme
when not matched–a表有 b表匹配不到做insert (也可以加上 by target)
then insert(id,nme) values(a.id,a.nme)
when not matched by source–a表没有做delete
then delete ;
第二种写法:
MERGE INTO Stock AS s
Using ProcurePrepare AS pp
ON (s.warehouse_Id = pp.warehouse_Id and s.goods_Barcode=pp.goods_Barcode)
WHEN MATCHED AND pp.admin_Login='njzp' THEN
UPDATE SET s.s_Num = s.s_Num+pp.pp_Num
WHEN NOT MATCHED BY TARGET AND pp.admin_Login='njzp' THEN
INSERT
VALUES (pp.warehouse_Id, pp.goods_Barcode,pp.pp_Num);
两种写法把参照表的条件查询放置的位置不一样

  • 本文标题: sqlserver MERGE用法,在查询时根据匹配进行修改,添加和删除数据操作
  • 文章分类:【SQLServer】
  • 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
留言评论
站点声明:
1、本站【胡同里的砖头】个人博客,借鉴网上一些博客模板,取其各优点模块自行拼装开发,本博客开发纯属个人爱好。
2、所有笔记提供给广大用户交流使用,可转载,可复制,纯个人开发所遇问题锦集记录使用
Copyright © huzlblog.com All Rights Reserved. 备案号:苏ICP备2021056683号-8