sqlserver 2008 merger语句
2024-09-04 17:09:56
Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。
MERGE 目标表
USING 源表
ON 匹配条件
WHEN MATCHED THEN
语句
WHEN NOT MATCHED THEN
语句;
其中最后语句分号不可以省略,且源表既可以是一个表也可以是一个子查询语句
WHEN NOT MATCHED BY TARGET
表示目标表不匹配,BY TARGET是默认的,所以上面我们直接使用WHEN NOT MATCHED THEN
WHEN NOT MATCHED BY SOURCE
表示源表不匹配,即目标表中存在,源表中不存在的情况。
示 例:
merge into device d
using deviceTmp t on d.id=t.id
when matched and d.isDeleted=0
then update set d.deviceName=t.deviceName,d.updateTime=getDate()
when not matched
then insert (id,isdeleted,updateTime,account,catagoryId,cid,devid,deviceName)
values(t.id,0,getDate(),t.account,t.catagoryId,t.cid,t.devid,t.deviceName);
最新文章
- senlin __init__() got an unexpected keyword argument 'additional_headers'
- 【网络】VPN和代理服务器的区别
- Python中format的用法
- 线程高级应用-心得7-java5线程并发库中阻塞队列Condition的应用及案例分析
- python--切片--6
- 将HTML段赋值给PHP变量的便捷方法,不使用转义字符
- js判断小数点几位
- wordpress plugins collection
- MongoDB:The Definitive Guide CHAPTER 2 Getting Started
- 在.NET中使用iTextSharp创建/读取PDF报告: Part I [翻译]
- C#由变量捕获引起对闭包
- 【设计优化】-使用缓冲(Buffer)提高程序性能
- shiyandaima
- 浩哥解析MyBatis源码(六)——DataSource数据源模块之池型数据源
- intellij idea maven 工程生成可执行的jar
- linux驱动---用I/O命令访问PCI总线设备配置空间
- goroutine和线程区别
- Github上如何查看当前最流行的开源项目
- python转义符
- python爬虫---requests库的用法
热门文章
- 《DOM编程艺术》读书笔记<;概述>;
- 集合Gk表示这样一堆数字,该集合内的数字有k个1
- Linux系统结构 详解(转)
- 第一课、安装登录CentOS7
- window.moveTo(),window.moveBy()不生效
- vue调用豆瓣API加载图片403问题
- bootstrap-paginator分页插件的简单使用实例
- PHP中$a &;&; $b = $c 语法的用法
- laravel-admin 创建数据库并生成控制器
- QWT编译与配置-Windows/Linux环境