728x90
반응형
[MSSQL] 커서(Cursor) 사용법 및 예제
쉽게 얘기하는 것을 좋아한다.
오늘은 MSSQL에서 커서에 대해서 알아보자.
커서(Cursor)는 '포인터' + '반복문'의 개념이라고 볼 수 있다.
커서는 어떤 테이블이나 결괏값에 대해서 첫 행부터 마지막 행까지 한 행 씩 가리키면서 작업할 수 있게 도와주는 스킬이다.
위의 테이블(혹은 결괏값)이 있을 때, 위 전체 대상에 대해서 나이(Age)를 2살 더해보자.
※ UPDATE문 한 줄로 간단하게 처리할 수 있다는 것을 알지만 사용법을 익히기 위해서는 가능한 쉬운 예제를 사용해 이해를 돕고자 했다.
커서 사용법, 예제
-- 커서 아래에서 조회한 값들을 담을 변수를 선언
DECLARE @NAME VARCHAR(20), @AGE SMALLINT
DECLARE CUR CURSOR FOR -- CUR라는 이름의 커서를 선언한다.
SELECT NAME, AGE FROM EXAMPLE -- 테이블 조회
OPEN CUR -- 커서 오픈
FETCH NEXT FROM CUR INTO @NAME, @AGE -- SELECT한 첫 행의 결괏값을 @NAME, @AGE 변수에 담는다.
-- 조회한 테이블(결괏값)을 한 행(ROW)씩 읽는다.
WHILE @@FETCH_STATUS = 0 -- 상태확인 TRUE면 반복해서 실행한다.
BEGIN
UPDATE EXAMPLE
SET AGE = @AGE + 2 -- 나이 2살 더하기
WHERE NAME = @NAME
-- SELECT한 결괏값에서 다음 행의 값을 @NAME, @AGE 변수에 담는다.
FETCH NEXT FROM CUR INTO @NAME, @AGE
END
-- 커서 닫고 초기화
CLOSE CUR
DEALLOCATE CUR
결괏값
728x90
반응형
'DB, SQL' 카테고리의 다른 글
[MSSQL] 커스텀 함수 - 비숫자 제거 함수 (0) | 2024.09.06 |
---|---|
SQL Server XML 사용법 알아보자. (1) | 2023.12.19 |
MySQL 8.x 버전 root 비밀번호 까먹었을 때, 분실했을 때 해결방법 (1) | 2022.12.04 |
H2 Database 설치 및 실행, 오류 해결 (1) | 2022.10.09 |
[MSSQL] 테이블 목록 조회하기, 특정 텍스트가 포함되어 있는 시스템 오브젝트 조회하기, 특정 텍스트가 포함되어 있는 프로시저 조회하기, 특정 테이블의 컬럼 조회하기 (0) | 2022.08.04 |