首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据第一表中更新的行更新第二表

问根据第一表中更新的行更新第二表
EN

Stack Overflow用户
提问于 2013-09-12 22:47:50
回答 1查看 68关注 0票数 0

我有两张桌子jhead和jjops。我正在用以下声明更新jhead:

代码语言:javascript
复制
UPDATE jhead h
SET h.jhpcmp = 1
WHERE h.jhpcmp = '0' AND h.jhpqty <= h.jhqtys

但是现在我想根据我在jjops中更新的内容来更新jhead。声明的内容如下:

代码语言:javascript
复制
UPDATE jjops j
SET j.jascmp = 1, japcmp = 1
WHERE (This is where I am stuck)

连接这两个表的内容如下:h.jhjob = j.jajob

有什么方法可以同时更新这两个表吗?我应该首先使用联接更新表jjops,然后更新表jhead吗?如果是的话,我应该使用什么连接?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-12 23:07:13

“同时”更新两个表的方法是使用事务。您可以使用output子句作为从一个语句到另一个语句传递内容的一种方式。Server还具有加入update语句的特殊语法(参见第二次更新)

代码语言:javascript
复制
Declare @ids table (jhjob int not null) -- replace with correct data type

Begin Transaction

Update 
    jhead
Set 
    jhpcmp = 1
output 
    inserted.jhjob into @ids
Where 
    jhpcmp = '0' And
    jhpqty <= jhqtys

Update 
    jjops
Set
    jascmp = 1,
    japcmp = 1
From
    jjops j
        inner join
    @ids h 
        on j.jajob = h.jhjob

Commit Transaction
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18775532

复制
相关文章

相似问题

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