首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将传统的IF EXIST UPDATE ELSE INSERT转换为MERGE不起作用吗?

将传统的IF EXIST UPDATE ELSE INSERT转换为MERGE不起作用吗?
EN

Stack Overflow用户
提问于 2013-07-03 19:47:35
回答 4查看 1.1K关注 0票数 0

我将使用MERGE来插入或更新表,这取决于它是否存在。这是我的问题,

代码语言:javascript
运行
复制
declare @t table
(
    id int,
    name varchar(10)
)
insert into @t values(1,'a')

MERGE INTO @t t1
USING (SELECT id FROM @t WHERE ID = 2) t2 ON (t1.id = t2.id)
WHEN MATCHED THEN
    UPDATE SET name = 'd', id = 3
WHEN NOT MATCHED THEN
    INSERT (id, name)
    VALUES (2, 'b');

select * from @t;

结果是,

代码语言:javascript
运行
复制
id  name
1   a

我觉得应该是,

代码语言:javascript
运行
复制
id  name
1   a
2   b
EN

Stack Overflow用户

发布于 2013-07-03 20:00:24

对于每个DML操作,您必须提交(标记成功事务的结束),然后只有您才能看到最新数据

例如:

代码语言:javascript
运行
复制
GO
BEGIN TRANSACTION;
GO
DELETE FROM HumanResources.JobCandidate
    WHERE JobCandidateID = 13;
GO
COMMIT TRANSACTION;
GO
票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17447127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档