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必须分号结尾,不然报错
  • 相关阅读:
    React+Redux仿Web追书神器
    关于贝塞尔曲线的故事
    420小时学习代码之后:如何教你免费自学Python
    学问Chat UI(3)
    学问Chat UI(1)
    Binder进程间通信详解
    Handler源码分析
    学问Chat UI(4)
    WebPack错误集
    React问题集序
  • 原文地址:https://www.cnblogs.com/itstac/p/11927496.html
Copyright © 2011-2022 走看看