我有两张桌子jhead和jjops。我正在用以下声明更新jhead:
UPDATE jhead h
SET h.jhpcmp = 1
WHERE h.jhpcmp = '0' AND h.jhpqty <= h.jhqtys但是现在我想根据我在jjops中更新的内容来更新jhead。声明的内容如下:
UPDATE jjops j
SET j.jascmp = 1, japcmp = 1
WHERE (This is where I am stuck)连接这两个表的内容如下:h.jhjob = j.jajob
有什么方法可以同时更新这两个表吗?我应该首先使用联接更新表jjops,然后更新表jhead吗?如果是的话,我应该使用什么连接?
发布于 2013-09-12 23:07:13
“同时”更新两个表的方法是使用事务。您可以使用output子句作为从一个语句到另一个语句传递内容的一种方式。Server还具有加入update语句的特殊语法(参见第二次更新)
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 Transactionhttps://stackoverflow.com/questions/18775532
复制相似问题