SQL Server使用Merge语句当源表数据集为空时,无法进行查询的问
感兴趣的小伙伴,下面一起跟随编程之家 52php.cn的小编两巴掌来看看吧! 面举一个例子来具体说明一下: 代码如下:
执行结果为UPDATE,表示执行了更新操作,也正是我们想要的。 但是如果我们把@UserName赋值为'user6',希望能在TargetTable中插入一条记录,但是实际执行结果为空,显示什么都没执行。原因就是using (select UserName,[Level] from SourceTable where UserName=@UserName) as sr(UserName,[Level]) on tg.UserName=sr.UserName这个语句中,sr结果集为空,所以merge语句就不向后执行了,不知道这是不是SQL Server的bug。 下面的SQL可以解决上面的问题: 代码如下:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server – 在生产服务器上运行perfmon可以吗?为什么?
- sql-server – 关于作为Head Blocker的SQL连接,我该怎么办?
- 安装Sqlserver2005出现"性能监视器计数器要求"错误
- sql – 当我们在联接中使用聚合函数时如何使用Group By子句
- 在数据库中存储加密的用户名哈希
- sql-server – SQL Server – 挂起进程 – SPID查询
- sql-server – SQL事务日志备份与完全备份冲突?
- SQL查询字段被包含语句
- 非正常卸载SQLSERVER 后再次安装出现错误
- sqlserver2008 字符串类型varchar,nvarchar,nchar之间的区别