シーンを想像して、既存のSybaseコードを更新して、カーソルを見つけようとしています。ストアドプロシージャは、#temporaryテーブルに結果セットを作成します。#temporaryテーブルは、列のいずれかが人間が読める形式でないことを除いてすべて返される準備ができています。英数字のコードです。Sybase(T-SQL)でのカーソルの使用を避けるにはどうすればよいですか?
declare c_lookup_codes for
select distinct lookup_code
from #workinprogress
while(1=1)
begin
fetch c_lookup_codes into @lookup_code
if @@sqlstatus<>0
begin
break
end
exec proc_code_xref @lookup_code @xref_code OUTPUT
update #workinprogress
set xref = @xref_code
where lookup_code = @lookup_code
end
:私たちが行う必要がある何
は、新たに解読値で結果セットを更新し、参照にこれらの控えめな値を横断する別のストアドプロシージャを呼び出し、このコードの可能性のある個別の値を把握していますさて、これはいくつかの人々の動悸を与えるかもしれませんが、それは動作します。私の質問は、どのようにこの種のことを避けるのが最善でしょうか?
_NB:この例では、結果セットが500k行の領域にあり、look_up_codeには100個の異なる値があり、最終的にはproc_code_xref内のロジックのxref値があまりにも曖昧です._