문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 다음 판 | 이전 판 | ||
| sqlserver:recursive_cte [2020/10/13 05:52] – 만듦 taekgu | sqlserver:recursive_cte [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 7: | 줄 7: | ||
| - CTE는 MAXRECURSION 수준 값을 0에서 32,767 사이로 설정하는 옵션도 제공합니다. | - CTE는 MAXRECURSION 수준 값을 0에서 32,767 사이로 설정하는 옵션도 제공합니다. | ||
| - 값을 0으로 지정하면 재귀 수준에 제한이 없음을 의미하며, | - 값을 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 | ||
| + | </ | ||
| + | ===== option MAXRECURSION ===== | ||
| + | <code sql> | ||
| + | WITH EmpRecursiveCTE(ManagerId, | ||
| + | ( | ||
| + | SELECT ManagerId, Id, Name, 0 AS Level | ||
| + | FROM dbo.Employees | ||
| + | WHERE ManagerId IS NULL | ||
| + | UNION ALL | ||
| + | SELECT E.ManagerId, | ||
| + | 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) | ||
| + | </ | ||
| + | ==== 최대 재귀 수준 32, | ||
| + | OPTION (MAXRECURSION 0) | ||
| + | |||