さて、ファイル内に他の誰かが書いた以下のコードを見つけました。私の質問は、MSSQLの構文のどこかに「FOR UPDATE OF」または「WHERE CURRENT OF」を含める必要がある更新カーソルで考えたように、これが実際に機能するかどうかです。
set @group_id_new = (select max(group_id) + 1 from x_dc_multgroups_stage001c)
declare cur_cont cursor for
(select cont_id from x_dc_multgroups_stage002b)
open cur_cont
fetch next from cur_cont into @cont_id
while @@fetch_status = 0
begin
--print @cont_id
update x_dc_multgroups_stage002a
set group_id_new = @group_id_new
where group_id in (select group_id from x_dc_multgroups_stage002a where cont_id = @cont_id)
set @group_id_new = @group_id_new + 1
fetch next from cur_cont into @cont_id
end
close cur_cont
deallocate cur_cont