mysql中的merge into,SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字)...
SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字)
语法请参考:
按照语法编写语句
DECLARE @OpenID VARCHAR(150);
SET @OpenID = '5';
MERGE INTO wx AS T
USING (SELECT [User_ID] FROM wx WHERE OpenId = @OpenId) AS S ON T.[User_ID]=S.[User_ID]
WHEN MATCHED THEN
UPDATE SET T.Invalid = 0, T.Updater = 1, T.UpdateTime = GETDATE()
WHEN NOT MATCHED THEN
INSERT (OpenId, Creator, CreateTime, Invalid) VALUES(@OpenID, 1, GETDATE(), 0);
发现添加语句不起作用
仔细看了语句,再逐行分析,突然想起来NOT MATCHED后面其实是省略了一个关键字BY TARGET的
意思是:TARGET中没有,而SOURCE中有的话,向TARGET表中添加一条数据
但其实在上例中,要添加数据时,openid是不存在的
调整语句,执行成功,问题解决:
DECLARE @OpenID VARCHAR(150);
SET @OpenID = '5';
MERGE INTO wx_User AS T
USING (SELECT @OpenID) AS S(OpenId) ON T.[OpenId] = S.[OpenId]
WHEN MATCHED THEN
UPDATE SET T.Invalid = 0, T.Updater = 1, T.UpdateTime = GETDATE()
WHEN NOT MATCHED THEN
INSERT (OpenId, Creator, CreateTime, Invalid) VALUES(@OpenID, 1, GETDATE(), 0);
mysql中的merge into,SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字)...相关推荐
- SQL Server 2008 问题——已成功与服务器建立连接,但是在登录过程中发生错误。
登录报错:已成功与服务器建立连接,但是在登录过程中发生错误. (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程. 解决办法:先用windows模式登录上去,然后 ...
- 在SQL Server 2008中调用.net,dll
T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了.这时可以借助CLR了,我们可以在SQL Server 2008中扩展C#程序来完成循环等过程式的查 ...
- SQL Server 2008性能故障排查(二)——CPU
原文: SQL Server 2008性能故障排查(二)--CPU 承接上一篇:SQL Server 2008性能故障排查(一)--概论 说明一下,CSDN的博客编辑非常不人性化,我在word里面都排 ...
- 详细介绍微软SQL Server 2008
SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本.这篇文章详细介绍了Microsoft SQL Ser ...
- 微软 Sql Server 2008
详细介绍微软SQL Server 2008 http://dev.yesky.com/264/7681264_4.shtml 2007-11-25 09:00 作者: 戴羽 出处: IT专家网 责任编 ...
- 解析SQL Server 2008的精妙之处
关键词:SQL Server 2008,仪表盘 安装 SQL Server 2008的设置和安装也有所改进.配置数据和引擎位已经分开了,所以它使创建基本的未配置系统的磁盘图像变得可能了,它使分布到多个 ...
- SQL Server 2008备份大全实战(七)
这一篇博文探讨下SQL Server 2008 备份的实际操作,事实上SQL Server 2008并不关心数据是备份到物理磁盘上还是磁带上,在SQL Server 2008数据库备份中,预定义的目标 ...
- SQL Server 2008基于策略的管理
基于策略的管理(Policy Based Management),使DBA们可以制定管理策略,并将这些策略应用到服务器.数据库以及数据环境中的其他对象上去.经过精心设计的管理策略可以帮助DBA们对数据 ...
- 创建集成含有SQL Server 2008 RTM + Service Pack 1 的安装 (翻译)
原文链接http://blogs.msdn.com/petersad/archive/2009/02/25/sql-server-2008-creating-a-merged-slisptream-d ...
最新文章
- 宁夏计算机专科大学排名,2019年民办学校排行榜_科普2019年宁夏专科学校排名及2019宁夏民办高校排...
- 【Android】Eclipse JNI开发
- MySQL date_add()函数​​​​​​​
- java多个类调用_JAVA问题总结之15-多个类之间的调用
- 自己配置python环境_windows下python环境的配置
- 2.2 获取图像感兴趣区域_基于Hu距的图像旋转矫正之OpenCV实现
- 多线程-Threading
- layout elements
- C#中的方法(函数),委托和事件
- Python——python3的requests模块的导入
- 那些让您相见恨晚的app
- linux中红帽系统下载地址,Redhat8.3系统下载
- Verilog HDL实现智能药盒
- 阿里云云数据库RDS快速使用教程
- C语言入门——初识C语言
- java统计每个单词单词出现的次数_Java统计英文句子中出现次数最多的单词并计算出现次数的方法...
- 卡方检验——离散型特征相关性分析
- 远程开启或唤醒休眠的计算机
- 【PowerQuery】Excel 自动刷新PowerQuery连接
- 伤寒论文本搜索(grep)
热门文章
- WINCE6.0 chain.bin和xipkernel.bin解析
- 电梯维修属于什么服务器,电梯维修属于建筑服务中的修缮服务吗?
- Maven学习总结(8)——使用Maven构建多模块项目
- Flutter开发环境安装
- [Jobdu] 题目1214:丑数
- 455. Assign Cookies - LeetCode
- 专车降价滴滴快车使命终结?
- 当深度学习遇上异构并行计算
- 使用Mybatis的Generator可能导致的一个错误
- 进阶:案例六: Context Menu(静态 与 动态)