장면을 상상해보십시오. 레거시 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 개의 고유 한 값이 있다고 가정 할 수도 있고 마지막으로 look_up_code에 100 개의 고유 한 값이 있다고 생각할 수도 있습니다. proc_code_xref의 논리로 xref 값이 너무 작습니다. _