티스토리 뷰
반응형
'CURSOR'는 DBMS의 자원을 비교적 많이 사용하고 속도가 느린 특성 있어 #임시테이블을 활용을 권장
한 건씩 읽어야할 데이터를 임시테이블에 저장하고 WHILE문으로 한 건씩 읽으면서 처리하는 방식
CREATE TABLE #TBL_WORK_1(
CODE NVARCHAR(10)
,CNT NUMERIC(18, 0)
)
INSERT INTO #TBL_WORK_1 VALUES('A1', 10), ('A2', 20), ('A3', 30)
-------------------------------------------------------------------
-- 커서용테이블을 만들때 반드시 순번 컬럼이 필요하다(읽을 위치 관리를 위해)
SELECT
A.CODE
, A.CNT
,ORDERS = IDENTITY(INT, 1, 1) -- 테이블에 순번값을 1부터 1씩 증가
INTO #COUSOR1
FROM #TBL_WORK_1 A
WHERE A.CODE < 'A3'
ORDER BY CNT DESC
DECLARE @CURSOR1_CODE NVARCHAR(10) -- 커서 데이터 읽을 변수 선언
,@CURSOR1_CNT NUMERIC(18, 0)
,@CURSOR1_ORDER INT = 1 -- 커서가 읽을 순번 위치(기본:1)
,@CURSOR1_TOTAL INT = @@ROWCOUNT -- 커서의 총건수(시스템변수 활용)
-- 순번값이 총건수보다 작으면 계속 실행
-- 커서에 저장된 총건수를 체크하면서 반복처리
WHILE (@CURSOR1_ORDER <= @CURSOR1_TOTAL)
BEGIN
SELECT @CURSOR1_CODE = A.CODE -- 커서 테이블에 값을 하나씩 읽어옴
,@CURSOR1_CNT = A.CNT
FROM #COUSOR1 A
WHERE A.ORDERS = @CURSOR1_ORDER
SELECT CODE = @CURSOR1_CODE, -- 읽은 값을 출력
CNT = @CURSOR1_CNT
-- 여기에 추가적인 작업에 필요한 명령을 추가
---------------------------------------------------------------------------
SET @CURSOR1_ORDER = @CURSOR1_ORDER + 1 -- 다음 자료를 읽기 위해 순변 변수 + 1 증가
END
DROP TABLE #COUSOR1
DROP TABLE #TBL_WORK_1
※ 테이블 복사 구문
- SELECT ~ INTO ~ FROM
- WHERE을 사용하여 특정 데이터만 복사
-> SELECT ~ INTO '새테이블이름' FROM '복사할테이블' WHERE ~
* 도서 'MSSQL Server 기본에서 실무까지' 참조
반응형
'SQL > MSSQL' 카테고리의 다른 글
[MSSQL] 저장 프로시저(STORED PROCEDURE) (0) | 2021.07.27 |
---|---|
[MSSQL] TRY CATCH문 (0) | 2021.07.22 |
[MSSQL] 반복문 - WHILE문 (0) | 2021.07.19 |
[MSSQL] 조건문(IF, CASE) (0) | 2021.07.19 |
[MSSQL] 변수 (0) | 2021.07.17 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바
- Vue.js
- 스타트 스프링 부트
- 손에 잡히는 10분 SQL
- 스타트 스피링 부트
- springboot
- 자바스크립트&제이쿼리
- MSSQL
- MSSQL 기본에서 실무까지
- 모든 웹을 위한 JavaScript jQuery 입문
- MS SQL Server 기본에서 실무까지
- Python
- 모던 웹을 위한 JavaScript jQuery 입문
- 처음 배우는 스프링 부트2
- 리눅스
- 스프링부트 퀵 스타트
- Linux
- 배워서 바로 쓰는 스프링 부트 2
- 스프링부트 퀵스타트
- JavaScript
- 리액트를 다루는 기술
- 스프링부트퀵스타트
- JAVA 기본기 다지기 프로젝트
- 강제 타입 변환
- MSSQL Server 기본에서 실무까지
- 프로시저
- 스프링부트 퀵스타터
- Java
- 스프링 부트 퀵스타트
- 모던 웹을 위한 JavaScript + jQuery 입문
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함