これはばかげた質問かもしれません、私はグーグルを試しましたが、おそらくこれを適切に表現していないので、ここで問題を説明しようとします:
SQL Server 2000を使用していて、3つのレコードを持つテーブルを反復処理し、各反復で別のストアドプロシージャ(SP2)を実行するストアドプロシージャ(SP1)があります。
SP2は挿入を実行してから、挿入されたレコードに対して選択を実行します。
SP1は反復後も続行し、1回の選択を行ってから終了します。
SP1を実行すると、最後に選択した結果セットのみが返されます。しかし、この反復では、4つの結果セット(反復ごとに1つ、最後にSP1が選択)がすべて返されます。
don't return the resultset of SP2
SP1の一部としてそれらを反復しているときに言う方法はありますか?
SP2とまったく同じであるが、最後にselectがない、おそらくそれを処理する別のストアドプロシージャを作成できます。しかし、結果セットが返されないようにする何かをSP1に追加したいと思います。それは可能ですか?
現在のSP1のイテレーションは次のようになります。
set nocount on
declare c cursor for select room_id from st_room_ref where active = 1
declare @room_id int,
@max_c int
open c
while 1 = 1
begin
fetch c into @room_id
if @@fetch_status <> 0 break
select @max_c = max(call_id)
from st_call
where room_id = @room_id
if @max_c is null
exec st_getCall @room_id
end
close c
deallocate c
カーソルの間違いについての論文はご遠慮ください。st_getCall
結果セットを返送しないようにSPに指示する何らかの方法を望んでいました。