재귀 썸네일형 리스트형 CTE 무한루프 이전에 유용하게 사용했던 CTE SQL에서 간혹 오류가 나는 경우가 발생했습니다.'문의 완료되기 전에 최대 재귀 횟수(?)가 초과되었습니다.' 이는 서버에서 CTE로 인한 무한루프를 방지하기 위한 장치의 제한이 걸렸기 때문일 가능성이 있습니다.기본적으로 최대 100회의 재귀 CTE가 허용되며, 이는 0~32,767의 범위를 가질 수 있습니다.질의의 마지막에 다음 구문을 추가하는 것으로 재귀 회수를 제어할 수 있습니다. SQL OPTION (MAXRECURSION 100) Referenceshttps://technet.microsoft.com/ko-kr/library/ms175972(v=sql.105).aspxhttps://technet.microsoft.com/ko-kr/library/ms181714(v.. 더보기 CTE 일반적으로 Group은 재귀적으로 참조하는 형태입니다.(Group.ParentGroupId = Group.Id 형태) 이에 데이터 조회시 반복처리를 해야 하는 형태가 발생함으로 이를 쉽게 처리할 수 있는 방법은 없을까요?해답은 MSSQL 2005 이후 버전에서 지원하는 CTE(Common Table Expression) 입니다. Anchor set을 설정하고, 이를 재귀적으로 순환하며 참조하게 하는 SQL를 작성할 수 있습니다. Example WITH DirectReports(ManagerID, EmployeeID, Title, EmployeeLevel) AS ( -- Anchor SELECT ManagerID, EmployeeID, Title, 0 AS EmployeeLevel FROM dbo.MyEm.. 더보기 이전 1 다음