내용으로 건너뛰기
GaramX
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
현재 위치:
home
»
sqlserver
»
recursive_cte
추적:
sqlserver:recursive_cte
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== 재귀 CTE( Recursive Common Table Expression ) ====== ===== 재귀 공통 테이블 표현식 ===== CTE는 이해하기 쉽고 읽기 쉽고 유지 관리가 쉬운 재귀 쿼리 를 작성하는 메커니즘을 제공 합니다 . CTE 이전에는 재귀 쿼리를 작성하는 유일한 메커니즘은 재귀 함수 또는 저장 프로 시저를 사용하는 것입니다. 그리고 이러한 재귀 함수 또는 저장 프로시 저는 최대 32 개 수준의 재귀 만 지원합니다. - 기본적으로 CTE는 최대 재귀 수준 100을 지원합니다. - CTE는 MAXRECURSION 수준 값을 0에서 32,767 사이로 설정하는 옵션도 제공합니다. - 값을 0으로 지정하면 재귀 수준에 제한이 없음을 의미하며, 잘못 작성된 쿼리의 경우 **무한 재귀 수준을 초래하는 위험**에 동의했습니다. <code sql> WITH CTE AS ( -- Anchor member definition SELECT 1 AS NN UNION ALL -- Recursive member definition SELECT NN + 1 FROM CTE WHERE NN < 10 ) SELECT * FROM CTE </code> ===== option MAXRECURSION ===== <code sql> WITH EmpRecursiveCTE(ManagerId, EmployeeId, Name, Level) AS ( SELECT ManagerId, Id, Name, 0 AS Level FROM dbo.Employees WHERE ManagerId IS NULL UNION ALL SELECT E.ManagerId, E.Id, E.Name, Level + 1 FROM dbo.Employees E INNER JOIN EmpRecursiveCTE EmpCTE ON E.ManagerID = EmpCTE.EmployeeId ) SELECT EmployeeId, Name, ManagerID, Level FROM EmpRecursiveCTE ORDER BY ManagerID OPTION (MAXRECURSION 210) </code> ==== 최대 재귀 수준 32,767보다 큰 재귀 수준을 지원하는 방법은 무엇입니까? ==== OPTION (MAXRECURSION 0)
sqlserver/recursive_cte.txt
· 마지막으로 수정됨: 2025/04/15 10:05 저자
127.0.0.1
문서 도구
문서 보기
이전 판
역링크
맨 위로