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,哈哈

  • 相关阅读:
    oracle实例的内存(SGA和PGA)调整,优化数据库性能
    Redhat 安装perl模块
    三、Java基础---------关于继承、构造函数、静态代码块执行顺序示例讲解
    二、Java基础--02
    一、Java基础--01
    提醒用户收到短信
    手机屏幕更改
    查看手机信息和SIM卡信息
    还原和设置手机桌面背景
    wifi的开与关
  • 原文地址:https://www.cnblogs.com/meteortent/p/3358559.html
Copyright © 2011-2022 走看看