CURSOR
2022. 2. 15. 14:06ㆍDatabase/MSSQL
[ 커서(CURSOR ) 반복문 구문 ]
DECLARE @C_A VARCHAR(10)
, @C_B VARCHAR(10)
, @C_C VARCHAR(10)
DECLARE RTN_CURSOR CURSOR
FOR
SELECT A, B, C
FROM TABLE
OPEN RTN_CURSOR
WHILE( 1 = 1 )
BEGIN
FETCH NEXT FROM RTN_CURSOR
INTO @C_A, @C_B, @C_C
IF ( @@FETCH_STATUS <> 0 )
BREAK;
로직
END
CLOSE RTN_CURSOR
DEALLOCATE RTN_CURSOR
[ CURSOR 반복문에서 특정조건 시 로직 건너뛰게 하려면 GOTO 이용하면 된다. ]
- IF 특정조건
BEGIN
GOTO POINT_A (아무거나 상관없음)
END
EXEC LOGIC_A
POINT_A
(특정조건 만족 시 LOGIC_A 실행안됨)
[ CURSOR_STATUS ]
- 커서가 닫혔는지 확인 후 커서 닫음 (안 닫혀있으면 오류 발생하기 때문)
IF CURSOR_STATUS('GLOBAL', '커서이름') > 0
BEGIN
CLOSE 커서이름
DEALLOCATE 커서이름
END
'Database > MSSQL' 카테고리의 다른 글
[ PIVOT ] 행을 열로 바꾸기 (0) | 2022.02.15 |
---|---|
[ STUFF / FOR XML PATH ] 여러행 하나의 행으로 합치는 방법 (0) | 2022.02.15 |
MSSQL TIps (0) | 2022.02.15 |
PROCEDURE Tips (0) | 2022.02.15 |
WITH (NOLOCK) (0) | 2021.01.14 |