我被要求提供更多关于我想做的事情的信息,它有点太长了,所以我会在这里添加它作为新评论。我不能在这里复制代码,所以我试图至少捕获基础.
我的代码看起来像:
DECLARE @headAcc varchar(20)
set @headAcc='ACC111'
declare @id varchar(20), @clId varchar(20)
declare cur CURSOR for
select addID, transID from Table1
where accID like @headAcc+'%' and...
order by 1 desc
OPEN cur
FETCH NEXT from cur into @accID, @transID
WHILE @@FETCH_STATUS = 0
BEGIN
-- 1
update Table2
set colX = ...
where accID=@accID and transID=@transID and...
-- 2
update Table3
set colY = ...
where accID=@accID and transID=@transID and...
FETCH NEXT from cur into @accID, @transID
END
CLOSE cur
DEALLOCATE cur
感谢您对答案的帮助和评论中的链接,我对 UPDATE JOIN 不是很熟悉,这应该是答案。
阅读文章后,我想出了 2 个更新形式,例如:
DECLARE @headACC varchar(20)
set @headACC='ACC111'
update t2
set t2.colX = ...
from Table2 t2
join Table1 t1
on t1.accID=t2.accID
and t1.transID=t2.transID
where t1.accID like @headAcc+'%'
and...
它似乎工作。任何其他评论表示赞赏,例如。如果有更有效的方法。