zoukankan      html  css  js  c++  java
  • Merge into 用法

    Merge into :源表和目标表进行对比,如果符合条件,则更新目标表中的数据,如果不符合条件,则将数据插入到目标表中;

    注意:源表中不能存在重复数据

    例子:

    表结构如下:

    表一:

    表二:

    源表:表一中的数据

    CREATE TABLE [dbo].[Member](
    	[MID] [int] IDENTITY(1,1) NOT NULL,
    	[MName] [char](50) NULL,
     CONSTRAINT [PK_Member] PRIMARY KEY CLUSTERED 
    (
    	[MID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    
    GO
    SET ANSI_PADDING OFF
    GO
    SET IDENTITY_INSERT [dbo].[Member] ON 
    
    INSERT [dbo].[Member] ([MID], [MName]) VALUES (1, N'张萨                                              ')
    INSERT [dbo].[Member] ([MID], [MName]) VALUES (2, N'王强                                              ')
    INSERT [dbo].[Member] ([MID], [MName]) VALUES (3, N'李三                                              ')
    INSERT [dbo].[Member] ([MID], [MName]) VALUES (4, N'李四                                              ')
    INSERT [dbo].[Member] ([MID], [MName]) VALUES (5, N'阳阳                                              ')
    INSERT [dbo].[Member] ([MID], [MName]) VALUES (6, N'虎子                                              ')
    INSERT [dbo].[Member] ([MID], [MName]) VALUES (7, N'夏雪                                              ')
    INSERT [dbo].[Member] ([MID], [MName]) VALUES (8, N'璐璐                                              ')
    INSERT [dbo].[Member] ([MID], [MName]) VALUES (9, N'珊珊                                              ')
    INSERT [dbo].[Member] ([MID], [MName]) VALUES (10, N'香奈儿                                            ')
    SET IDENTITY_INSERT [dbo].[Member] OFF
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'学号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Member', @level2type=N'COLUMN',@level2name=N'MID'
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Member', @level2type=N'COLUMN',@level2name=N'MName'
    GO
    

    将表二和表一进行对比

    Merge into Member_sync as S 
    using Member as T
    on(S.MID = T.MID)
    when matched 
    then update set S.MName = T.MName
    when not matched 
    then insert([MName]) values (T.MName);
    
    
    select * from Member_sync
    

      修改表一中的一条数据

    执行上面的Merge Into 代码可以看到如下结果

     推荐阅读:https://blog.csdn.net/spw55381155/article/details/79891305

  • 相关阅读:
    C语言编译多文件
    vs(visual studio 2019)恢复默认设置
    everything 有文件搜不到
    potplayer显示右侧插入列表消息
    ubuntu 关机、重启命令
    post&get请求总结
    C# string格式的日期时间字符串转为DateTime类型
    css position: absolute、relative详解
    在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
    ASP.NET获取客户端及服务器的信息
  • 原文地址:https://www.cnblogs.com/zyc19910109/p/11114823.html
Copyright © 2011-2022 走看看