커서를 검색 할 수있는 옵션이 있습니까?
예 : 행 번호와 값을 가진 테이블 (MyTable)
다른 테이블 (TestTable)에 복사하려는 경우 (
) 값이 5보다 크면 다음 값 내가 복사 할
는해야 < = 3
나는 이런 식으로 뭔가를 사용할 수 있습니다fetch next와 커서 위치
create table TestTable
(row tinyint,
value tinyint)
declare @row tinyint, @value tinyint, @trigger bit
declare test_cursor cursor fast_forward for
select row,value from MyTable order by row
open test_cursor
fetch next from test_cursor into @row,@value
set @trigger = 0
while @@FETCH_STATUS = 0
begin
if @trigger = 0
begin
insert into TestTable values (@row,@value)
if @value >= 5 set @trigger = 1
end
else if @value <= 3
begin
insert into TestTable values (@row,@value)
set @trigger = 0
end
fetch next from test_cursor into @row,@value
end
close test_cursor
deallocate test_cursor
작동하지만 내 질문은 것
가 : 커서
내부 검색하기 위해 어떤 방법이 다음 대가로 < = 3 번 트리거 = 1, 매번 다음 행을 계속 가져 오는 대신
?
종종 세트 기반 방법으로 트리거를 다시 쓸 수 있습니다. 네가 무엇을 성취하려고하는지 정확하게 말한다면 아마도 다른 방식으로 제공 될 수있다. – gvee
예 세트 기반 메소드가 대부분의 경우에 바람직 할 수 있다는 것을 알고 있지만이 세트에서 세트 기반 메소드를 사용할 수 없다고 생각합니다. 지금 바로 다음 반복 값을 검색하기 위해 반복 솔루션을 사용하고 있습니다. 내 기본 테이블에, 그리고 커서에 몇 가지 고급 옵션이있을 때마다 다음 행으로 이동하지 궁금하네요. 물론 그 쿼리에 대해 집합 기반 솔루션을 생각할 수 있다면 가장 좋을 것입니다. –
"다음 적합한 값"은 어떻게 정의합니까? – gvee