方法の使用は避けのカーソルに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行が100の一意の値のlook_up_codeたとはできませんのテーブルのxref値の論理proc_code_xrefも難解._
解決
いXRefテーブルを取得しようとする者に対しては、でカーソルを移動させます。とをご存知の100異なるルックアップ値にない静的な)プを呼び出proc_code_xref100倍に挿入し、結果をテーブル
他のヒント
場合を除きく重複コードのxrefが,その使用をやめるカーソルを移動させます。
と言われたことが発生する場合には、利用カーソルをしては、ここを参照してくださいて何か誤ってい;-)このソリューションカーソル:
declare @lookup_code char(8)
select distinct lookup_code
into #lookup_codes
from #workinprogress
while 1=1
begin
select @lookup_code = lookup_code from #lookup_codes
if @@rowcount = 0 break
exec proc_code_xref @lookup_code @xref_code OUTPUT
delete #lookup_codes
where lookup_code = @lookup_code
end
所属していません StackOverflow