zoukankan      html  css  js  c++  java
  • Sqlserver MERGE 的基础用法


    版权声明:本文为CSDN博主「暮雪寒寒」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_27628011/article/details/89319710

    MERGE tABatch AS t  -- 需要操作的主体表
    USING(
        SELECT batchNo,COUNT(0) AS waitTotal
        FROM (
        SELECT batchNo FROM OPENJSON(@checkJson)
        WITH(batchNo VARCHAR(50) '$.batchNo')
        ) t GROUP BY t.batchNo
        ) AS s (batchNo,waitTotal) -- USING里面是数据源,as以后,必须按照顺序指定字段名
        ON t.batchNo = s.batchNo  -- 这里是对比的条件
        WHEN MATCHED THEN 
        -- 如果有匹配就更新,只用写要更新的内容即可
            UPDATE SET t.waitTotal = t.waitTotal+s.waitTotal
        WHEN NOT MATCHED THEN 
        -- 没有匹配就新增,注意这里的INSERT不能再跟表名了
        INSERT  
        (
            batchNo,
            waitTotal,
            createTime
        )VALUES(
            s.batchNo,
            s.waitTotal,
            getdate()
        );  --这里可以带Output 输出需要的信息 包括 deleted inserted ,Action 详细可以看一下官方文档
    -- merge必须分号结尾,不然报错
  • 相关阅读:
    再谈树形dp
    洛谷 P3627 [APIO2009]抢掠计划
    树状数组
    树形dp 入门
    洛谷P2014 选课
    洛谷P2015 二叉苹果树
    9 vue.js 被观察数组的变异方法
    8 vue的v-model指令学习
    7vue-事件修饰符
    6.vue事件绑定-click
  • 原文地址:https://www.cnblogs.com/itstac/p/11927496.html
Copyright © 2011-2022 走看看