티스토리 뷰
반응형
재귀호출
해당 함수 또는 테이블의 값을 다시 호출하면서 반복적으로 처리할 때 사용
시스템에서 반복할 수 있는 최대 횟수를 지정하는 것이 좋음
(생략하면 DB 기본값으로 설정되어 시스템 설정에 따라 오류가 발생될 수 있음)
WHILE문으로 수행하는 방법보다 훨씬 빠른 속도를 기대할 수 있음
SET NOCOUNT ON;
WITH Q AS (SELECT 순번 = 1,
합계 = 1
UNION ALL
SELECT 순번 = 순번 + 2,
합계 = 합계 + (순번 + 2)
FROM Q
WHERE 순번 < 100 - 1 )
SELECT *
FROM Q OPTION (MAXRECURSION 100)
OPTION을 통해 재귀호출 최대 실행 횟수를 제한할 수 있음 (잘못 작성하면 무한반복할 수 있음)
- MAXRECURSION : 재귀호출 최대 실행횟수를 지정
ex) MAXRECURSION 100 -> 최대 100번만 가능하고 초과하면 오류 발생
MAXRECURSION 0 -> 제한하지 않음(미권장)
* 도서 'MSSQL Server 기본에서 실무까지' 참조
반응형
'SQL > MSSQL' 카테고리의 다른 글
[MSSQL] 난수 - RAND() 함수 (0) | 2021.09.11 |
---|---|
[MSSQL] 반복 로직 - 구구단 (0) | 2021.09.09 |
[MSSQL] SET 설정 (0) | 2021.08.13 |
[MSSQL] 동적SQL (0) | 2021.08.10 |
[MSSQL] 자료 처리 저장프로시저 개발 절차 및 기본 구성 (0) | 2021.08.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Python
- 처음 배우는 스프링 부트2
- 모던 웹을 위한 JavaScript + jQuery 입문
- 자바스크립트&제이쿼리
- JAVA 기본기 다지기 프로젝트
- 배워서 바로 쓰는 스프링 부트 2
- 리액트를 다루는 기술
- 강제 타입 변환
- MS SQL Server 기본에서 실무까지
- Vue.js
- 자바
- 스프링부트 퀵 스타트
- 모던 웹을 위한 JavaScript jQuery 입문
- 스타트 스프링 부트
- MSSQL
- 손에 잡히는 10분 SQL
- Linux
- 스타트 스피링 부트
- JavaScript
- MSSQL 기본에서 실무까지
- 모든 웹을 위한 JavaScript jQuery 입문
- 스프링부트 퀵스타터
- springboot
- 스프링부트 퀵스타트
- 스프링 부트 퀵스타트
- 프로시저
- Java
- MSSQL Server 기본에서 실무까지
- 스프링부트퀵스타트
- 리눅스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함