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必须分号结尾,不然报错
  • 相关阅读:
    零散的学习总结
    JSON学习整理
    轮播图
    关于new Object的小结
    js函数声明和函数表达式的区别
    float小结
    DOM文档加载步骤
    css主要的浏览器兼容性问题
    js for循环小记
    CANVAS中的lineWidth小计
  • 原文地址:https://www.cnblogs.com/itstac/p/11927496.html
Copyright © 2011-2022 走看看