알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)

[MS-SQL] 커서(Cursor) 사용하기 본문

데이터베이스

[MS-SQL] 커서(Cursor) 사용하기

백곳 2017. 10. 31. 11:14

[MS-SQL] 커서(Cursor) 사용하기



커서(Cursor)란?


행 단위 작업을 추가로 제어해야 할 경우 사용되는 기능입니다.



커서 선언


--커서 생성

DECLARE CursorEmail CURSOR FOR SELECT Email from tblUserTable where IsDelete = 'False'


커서 열기


--커서 열기

Open CursorEmail;


불러온 데이터를 이용한 작업


-- 맨처음 결과 데이터로 이동 

Fetch Next From CursorEmail Into @email 

WHILE(@@FETCH_STATUS <> -1)

BEGIN; 

--원하는 작업 수행 --다음 결과 데이터로 이동 

Fetch Next From CursorEmail Into @email; 

END;



커서 닫기



Close CursorEmail; 

Deallocate CursorEmail;


example



DECLARE @email VARCHAR(100) 


DECLARE @idx INT SET @idx = 0 


DECLARE CursorEmail 


CURSOR FOR SELECT Email from tblUserTable where IsDelete = 'False' 


Open CursorEmail; 


Fetch Next From CursorEmail Into @email 


While(@@FETCH_STATUS <> -1) 


Begin; 


--Idx 1씩 증가 

SET @idx = @idx + 1 

--업데이트 수행 

UPDATE tblUserTable SET groupIdx = @idx WHERE IsDelete = 'False' AND Email = @email 

Fetch Next From CursorEmail Into @email; 


End; 


Close CursorEmail; 

Deallocate CursorEmail;


출처: http://blog.sonim1.com/161 [Kendrick's Blog]


Comments