複数行の結果セットで返される列の int 値を 1 ずつインクリメントできるようにしたいと考えています。たとえば、次のクエリは、次のようなテーブルから結果セットを返します。
select numinbatch from items i where i.ID > @itemID and i.BatchID = @batchID
4
5
6
7
次のように、これらの値を 1 ずつインクリメントして更新します。
5
6
7
8
今のところ次のものがありますが、プラス記号の下に赤い波線のエラー行が表示されます。
declare @idToIncrement as int
declare cur cursor fast_forward for select numinbatch from items i where i.ID > @itemID and i.BatchID = @batchID
open cur
fetch next from cur into @idToIncrement
while @@FETCH_STATUS = 0
Begin
EXEC
--increment numinbatch or @idToIncrement
@idToIncrement= @idToIncrement + 1
fetch next from cur into @field1, @field2
END
close cur
deallocate cur
カーソルはパフォーマンスに悪いことを知っているので、より良い解決策があれば自由に共有してください。