zoukankan      html  css  js  c++  java
  • Merge的山寨版“联机帮助”

    IF NOT OBJECT_ID('Demo_AllProducts') IS NULL 
    DROP TABLE Demo_AllProducts
    GO 
    
    CREATE TABLE Demo_AllProducts
    (
        PKID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
        DName NVARCHAR(20) NULL,
        DCode NVARCHAR(20) NULL,
        DDate DATETIME NULL
    )
    GO  
    
    INSERT INTO Demo_AllProducts
    (DName,DCode,DDate)
    VALUES
    ('DemoA','AAA',GETDATE()),
    ('DemoB','BBB',GETDATE()),
    ('DemoC','CCC',GETDATE()),
    ('DemoD','DDD',GETDATE()),
    ('DemoE','EEE',GETDATE())
    
    SELECT * FROM demo_allproducts
    
    IF NOT OBJECT_ID('Demo_Shop1_product') IS NULL 
    DROP TABLE Demo_Shop1_product
    
    CREATE TABLE Demo_Shop1_product
    (
        PKID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
        DName NVARCHAR(20) NULL,
        DCode NVARCHAR(20) NULL,
        DDate DATETIME NULL    
    )
    GO 
    
    INSERT INTO Demo_Shop1_product
    VALUES
    ('DemoA','AAA',GETDATE()),
    ('DemoB','CCC',GETDATE()),
    ('DemoF','FFF',GETDATE())
    
    SELECT * FROM Demo_Shop1_product dsp
    
    --确定目标表
    MERGE INTO Demo_AllProducts p 
    --查找编码相同的产品
    USING Demo_Shop1_product s ON p.DCode=s.DCode
    --如果编码相同,名称不同,更新目标表【Demo_AllProducts】名称
    WHEN matched AND p.DName<>s.DName THEN UPDATE SET p.DName =s.DName
    --如果目标表不存在则插入
    WHEN NOT matched BY TARGET THEN INSERT(dname,dcode,ddate) VALUES(s.DName,s.DCode,s.DDate)
    --如果目标表数据,子表不存在,删除目标表记录
    WHEN NOT matched BY source THEN DELETE ;


    土豆的 merge 帮助文档,比联机帮助牛b,哈哈

  • 相关阅读:
    linux_crontab_定时删除
    bigdata_zookeeper 可视化界面zkui
    bigdata_ Kafka集群模式部署
    大数据_zookeeper环境搭建中的几个坑
    实战-130W表增加字段耗时
    每天一个linux命令
    nginx重启报找不到nginx.pid的解决方法
    log4j配置
    mysql select 1
    查看mysql语句运行时间
  • 原文地址:https://www.cnblogs.com/meteortent/p/3358559.html
Copyright © 2011-2022 走看看