2010-07-06 2 views
2

런타임시 커서가 변경되는 것을 방지하는 방법이 있습니까? 모든 사용자를 반복하는 커서가있는 경우 각 사용자의 처리 과정에서 일부 추가 사용자를 만든 다음 커서는 새로 만든 사용자를 반복합니다 ...런타임시 T-SQL 커서 결과가 변경됨

+0

당신은 매우 불분명합니다. 당신은 * 커서를 새로운 사용자들에게 반복 할 것인가, 아니면 그것을 원하지 않습니까? –

+0

1. 피할 수없는 경우를 제외하고는 커서를 사용하지 마십시오. 2. 왜? –

+1

이 질문은 커서를 사용할지 여부에 대한 질문이 아닙니다. 이는 다른 질문이며, 충분히 묻고 대답했습니다. @ 토마스 '방지'= 싶지 않아 –

답변

8

커서가 있어야합니다. INSENSITIVE 또는 BOL에서

STATIC : http://msdn.microsoft.com/en-us/library/ms180169.aspx

INSENSITIVE

커서가 사용하는 데이터의 임시 복사본을 만드는 커서를 정의합니다. 커서에 대한 모든 요청은 tempdb의이 임시 테이블에서 응답됩니다. 따라서 기본 테이블에 대한 수정 사항은이 커서에 대한 반입에 의해 리턴 된 데이터에 반영되지 않으며이 커서는 수정을 허용하지 않습니다. ISO 구문을 사용하는 경우 INSENSITIVE가 생략되면 기본 테이블에 대한 커밋 된 삭제 및 업데이트가 모든 사용자에 의해 후속 가져 오기에 반영됩니다.

STATIC

는 데이터의 임시 사본이 커서에 의해 사용될 수 있습니다 커서를 정의합니다. 커서에 대한 모든 요청은 tempdb의이 임시 테이블에서 응답됩니다. 따라서 기본 테이블에 대한 수정 사항은이 커서에 대한 반입에 의해 리턴 된 데이터에 반영되지 않으며이 커서는 수정을 허용하지 않습니다. 당신은 당신이 현재 시간 이전에 작성된 무엇으로 커서를 필터링 할 수 있습니다 "사용자 생성"에 대한 타임 스탬프가있는 경우

그러나 나는 아직도 SET 기반 솔루션

+1

좋은 대답. 방문 할 때마다 새로운 것을 배우십시오 ... – Kendrick

0

를 사용하는 것이 좋습니다 것입니다.