sql – 使用输出在merge语句中设置变量
发布时间:2021-05-24 02:34:08 所属栏目:MsSql教程 来源:网络整理
导读:我有一个合并声明,应该始终更新或插入单个记录.我想记住变量中该语句的ID.它看起来像这样: DECLARE @int intMERGE dbo.table AS AUSING (SELECT 'stringtomatch' AS string) AS B ON B.string= A.stringWHEN MATCHED THEN UPDATE SET somecolumn = 'somethin
|
我有一个合并声明,应该始终更新或插入单个记录.我想记住变量中该语句的ID.它看起来像这样: DECLARE @int int
MERGE dbo.table AS A
USING (SELECT 'stringtomatch' AS string) AS B ON B.string= A.string
WHEN MATCHED THEN
UPDATE SET somecolumn = 'something'
WHEN NOT MATCHED THEN
INSERT
VALUES ('stringtomatch','something')
OUTPUT @int = inserted.ID;
现在这样做不会起作用,因为你不能用这种方式在输出子句中设置@int.我知道我可以创建一个temptable并在输出中使用INTO @temptable.但是因为我知道它总是单个记录,所以我想在INT变量中使用ID. 解决方法不,您必须将表变量与OUTPUT一起使用但是,你可以这样做…… ...
WHEN MATCHED THEN
UPDATE
SET
@int = ID,somecolumn = 'something'
WHEN NOT MATCHED THEN
INSERT
VALUES ('stringtomatch','something');
SET @int = ISNULL(@int,SCOPE_IDENTITY());
长期以来,“assign in UPDATE”一直是SQL Server的有效语法.见MERGE on MSDN.两人都这样说:
(编辑:均轻资讯网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何将从Exchange数据库中提取的PST导入到Linux IMAP服务器
- sqlserver isnull在数据库查询中的作用
- sql – 与在MS Access数据库中加入相关的问题
- 数据库设计 – 数据库设计:两个1到多个关系到同一个表
- sql-server – 为什么SQL Server 2008在简单的SQL查询上崩溃
- 如何使用构造函数在选择子句中为多个表的选定列编写HQL JOI
- sql自增id怎么使用?如何增加自增字段?
- sql-server – 恢复数据库,不包括FILESTREAM数据
- sql-server – 如何在表中查找rowsize
- sql-server – 在这种情况下,如何设置带有流量拦截的TCP /
站长推荐
热点阅读


