[MS-SQL] 간단한 커서(cursor) 사용 예제

--변수 선언 조회한 컬럼을 담을 변수도 선언해야한다.
DECLARE 
@INDEX INT,
@NAME VARCHAR(100),
@AGE INT           

SET @INDEX = 0; --INDEX초기화

DECLARE CUR CURSOR FOR   --CUR라는 이름의 커서 선언

SELECT --쿼리 조회
NAME,
AGE                
FROM MY_FRIEND

OPEN CUR      --커서 오픈
FETCH NEXT FROM CUR INTO @NAME,@AGE  --SELECT한 값을 @NAME,@AGE 변수에 넣는다.

--커서를이용해 한ROW씩 읽음 
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX = @INDEX + 1; --INDEX증가

--SELECT 한 데이터의 행집합을 가지고 수행할 작업
UPDATE MY_FRIEND
SET AGE = @AGE+1 --나이+1
WHERE NAME = @NAME
  
FETCH NEXT FROM CUR INTO @NAME,@AGE  --다음ROW로 이동
END

--커서 닫고 초기화
CLOSE CUR
DEALLOCATE CUR