기본적인 구조
--커서네임 CUR_CHECK_MEMBER
--커서로 추가할 라인 검색
DECLARE CUR_CHECK_MEMBER CURSOR FOR
SELECT * FROM FRIENDS_EVENT
OPEN CUR_CHECK_MEMBER
FETCH NEXT FROM CUR_CHECK_MEMBER
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'FETCH LOOP'
FETCH NEXT FROM CUR_CHECK_MEMBER --요거 안해주면 무한루프 ㅋㅋ
END
CLOSE CUR_CHECK_MEMBER
DEALLOCATE CUR_CHECK_MEMBER
커서마다 idx(필드네임) 값 가져오기
DECLARE @IDX INT <--- 가져오 필드네임
DECLARE CUR_CHECK_MEMBER CURSOR FOR
SELECT IDX FROM FRIENDS_EVENT
OPEN CUR_CHECK_MEMBER
FETCH NEXT FROM CUR_CHECK_MEMBER INTO @IDX
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @IDX
FETCH NEXT FROM CUR_CHECK_MEMBER INTO @IDX
END
CLOSE CUR_CHECK_MEMBER
DEALLOCATE CUR_CHECK_MEMBER
커서가 뭐냐면...
회원정보를 하나 하나 가져와서
분석하고 처리해야하는데... 이거는 ASP 레코드셋처럼
한행 단위로 처리할수있다 ㅎㅎㅎㅎㅎ
편하다.....~
--커서선언부분
DECLARE cur_konan_Test CURSOR
FOR
SELECT idx , member_id FROM member_payment --커서에 담을 테이블 선택
--커서 오픈
OPEN cur_konan_Test
--변수 선언
DECLARE @idx int
DECLARE @member_id varchar(50)
FETCH NEXT FROM cur_konan_Test INTO @idx, @member_id --이게 레코드셋이라 생각하믄됨
* 참고 하셈-----------------------------------------------------------------------------
while @@FETCH_STATUS =0 으로 돌고있음
한마디로 말해서 에러가 없을때 까지 돌아란 말.... ㅎㅎㅎ 쉽따
0 FETCH 문은 성공적이었습니다.
-1 FETCH 문은 실패했거나 행이 결과 집합의 범위를 벗어났습니다.
-2 반입된 행이 없습니다.
----------------------------------------------------------------------------------------
WHILE @@FETCH_STATUS = 0
BEGIN
print @idx
print @member_id
FETCH NEXT FROM cur_konan_Test INTO @idx, @member_id --다음 커서로 이동~
END
--커서 CLOSE
CLOSE cur_konan_Test
--커서 DEALLOCATE
DEALLOCATE cur_konan_Test
'MS SQL' 카테고리의 다른 글
서브쿼리이용하여 전체갯수 구하기 (0) | 2010.04.17 |
---|---|
MS SQL 자동 증감 초기화 (1) | 2010.04.17 |
초간단 MS SQL 에서 TRY CATCH 사용하기 (0) | 2010.04.16 |
테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함 (0) | 2010.01.21 |
간단한 저장프로시저 예제 (0) | 2010.01.03 |
[ 첫글자 검색 ]레코드들 중에 특수문자 와 한글을 제거,검색 (0) | 2010.01.03 |
[ EXECUTE , EXEC] SQL 문자열 쿼리시 변수값 받기 (0) | 2010.01.03 |
[ INNER JOIN OUTER JOIN ] 이너조인 아웃터 조인 간단한 사용법 (0) | 2010.01.03 |
[MSDN]HOWTO: SQL Server에서 SQL 메일을 사용하지 않고 전자 메일 보내기 (0) | 2010.01.03 |
게시 (0) | 2010.01.03 |