예를 들면,

lesson_date           lesson_no

2015-04-01 1

2015-04-02 2

2015-04-03 3

2015-04-04 4

2015-04-05 5

2015-04-06 6

.

.

.

.


이런 식의 데이터가 있는데

4월2일의 lesson_no 2를 3으로 변경하고 그 다음날짜들도 하나씩 밀려야 하는 상황이라

커서를 사용하면 편하겠다 싶었는데,


대부분 예제들에서 보이는 


WHILE @@FETCH_STATUS=0

Begin

Update Table

FETCH NEXT FROM cursor into variables....

End


이런 식이 아닌 



WHILE @@FETCH_STATUS=0

Begin

FETCH NEXT FROM cursor into variables....

Update Table

End



위와 같이 먼저 다음 값들을 가져 오게 했는데,
제가 원하는데로 안되고, 그냥 그 값 그대로 update가 되더라구요.
왜 그럴까 보니

MSDN에
'현재 행 바로 다음의 결과 행을 반환하며 현재 행을 반환되는 행 앞의 행으로 만듭니다. 커서에 대해 FETCH NEXT가 첫 번째 인출인 경우에는 결과 집합의 첫 번째 행을 반환합니다. NEXT는 커서 인출의 기본 옵션입니다.'
라고 되어있는데, 첫 번째 행이 반환되서 그런게 아닌가 합니다.
커서를 사용해서 위의 처리는 안될까요?
No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 974
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 1635
8656 잘 모르겠습니다. 알려주세요...... [2] 라꾸라꾸 2015.04.13 2598
8655 sql 2005와 sql 2012 프로그져 중에 sysdb 좀 알려주세요. [2] 리퍼스 2015.04.13 2694
8654 테이블 압축과 백업 압축에 관해 실무적인 이야기를 듣고 싶습니다 [2] BisuML 2015.04.11 2769
8653 identity 속성 관련 질문입니다. [2] 버뮤다삼각김밥 2015.04.09 2976
8652 현재날짜 기준 한주간의 일자 쿼리를 묻고싶습니다. [1] 최고가되고싶어요 2015.04.09 2737
» 커서로 값들을 하나씩 밀 수 없을까요? [3] 봉선장 2015.04.09 3047
8650 파라미터로 sql문을 받아서 처리시 Temp Table에 넣을경우. [1] 냥냥이맘 2015.04.08 2714
8649 일별 그룹의 합계관련 질문 드려요 [1] 개발지기 2015.04.08 2702
8648 재고관리 프로그램에서 막히는 부분이 있습니다. [3] 엘로이 2015.04.08 5246
8647 컬럼에 파일용량 숫자를 kb로 표시될수 있게 할수 있을까요? [1] neiyan 2015.04.07 2961
8646 view에서 not null컬럼 김김 2015.04.07 2402
8645 동적쿼리 작성 질문입니다. [2] 왕만두와우동 2015.04.07 2960
8644 where 절에 case 문을 사용 [1] taz2315 2015.04.07 2645
8643 대용량 mdf 파일 데이터베이스 연결 [7] 띠용띠요 2015.04.06 9398
8642 postgresql 에서 mssql 로 포팅을 시켜야 하는데 [1] afddsa 2015.04.04 3462
8641 트랜잭션 복제 시 배포 및 게시 강제 해제 방법을 알고 싶습니다. [1] gnome7835 2015.04.03 2585
8640 백업 및 데이타 유실 문의 드립니다. [1] 죠리퐁 2015.04.03 3197
8639 sql 2000 에서 2008 설치 하는 방법을 알고자 합니다. [6] 슈토파이터 2015.04.03 2761
8638 테이블 데이터 일괄 업데이트 방법ㅠㅜ [1] 홍야홍야 2015.04.02 3275
8637 SQL 스칼라 서브쿼리 질문입니다. [1] 프루너스 2015.04.01 3945





XE Login