2012-03-13 3 views
1

하나의 테이블을보고있는 일반 커서와 스크롤 커서가있는 실행 파일을 실행하려고합니다. CURSOR는 SCROLL CURSOR가 내부 루프를 돕는 동안 외부 루프를 추적하는 역할을합니다. 프로그램을 실행하려고하면 코드가 스크롤 커서 (예 : 'OK'가 인쇄되지만 '코드는 여기에 도달하지 않음')가 열리는 것을 멈추는 것처럼 보입니다. SQL 2008 R2를 사용하고 있습니다. 나는 매우 축소 된 버전의 코드를 실행 해 보았고 내 컴퓨터의 어떤 상황에서도 스크롤러 커서를 열 수 없기 때문에 이상한 호환성이 있는지 또는 어떤 식 으로든 잘못된 구문이 있는지 궁금해하고 있습니다. 그것은 간단하다). 그 가치에 대해, 내 코드를 테스트 할 때 다른 컴퓨터에서 스크롤 커서를 열 수있었습니다.SQL - 스크롤러 커서 열기

어떤 원인 일 수 있습니까? 내가 실행하려고하는 코드 (모든 변수의 선언에 대한 의사 코드) 아래에 복사했습니다. 미리 감사드립니다.

create proc expiration_exec2 

AS 

SET NOCOUNT ON 

DECLARE bunch of @variables 
... 

DECLARE cursor_main CURSOR FOR 
SELECT Member_ID,redeemed_month,activity_month,tenure_month,min_pts,expired_pts,closed_pts,tenure_quarter,enrollment_month 
FROM HIST_TRIANGLE 

OPEN cursor_main 
FETCH NEXT FROM cursor_main 
INTO @account,@r_month,@e_month,@tenure_month,@min_pts,@expired_pts,@closed_pts,@tenure_quarter,@enrollment_month 

DECLARE cursor_secondary CURSOR SCROLL FOR 
SELECT Member_ID,redeemed_month,activity_month,min_pts,expired_pts,closed_pts 
FROM HIST_TRIANGLE 

PRINT 'OK' 

OPEN cursor_secondary 
FETCH NEXT FROM cursor_secondary 
INTO @account2,@r_month2,@e_month2,@min_pts2,@expired_pts2,@closed_pts2 

PRINT 'CODE DOES NOT REACH HERE' 

... 

Bunch more code 

답변

0

첫 번째 패스 ... 'AS'다음에 'BEGIN'을 넣고 'Bunch more code'다음에 'END'를 추가하십시오. 필요한 모든 것일 수 있습니다.

0

커서를 선언하는 동안 커서 유형을 입력하십시오. 당신이 선언 한 커서가 Static Read only 타입을 디폴트로 취할 수도 있습니다. Default type of SQL Server Cursor

: 자세한 내용은 아래 링크를

확인하세요