2013-10-02 1 views
0

저는 CTE에 대해 처음 접했습니다 - 공통 테이블 표현식을 정의 할 때 저장 프로 시저, 뷰 등으로 생성합니까? 예를 들어, 내가 가지고있는 경우 :공통 표 표현식 - 어디에서 표 작성 하나? 보기, 저장된 Proc 등?

USE AdventureWorks2012; 
GO 
WITH DirectReports(ManagerID, EmployeeID, Title, EmployeeLevel) AS 
(
    SELECT ManagerID, EmployeeID, Title, 0 AS EmployeeLevel 
    FROM dbo.MyEmployees 
    WHERE ManagerID IS NULL 
    UNION ALL 
    SELECT e.ManagerID, e.EmployeeID, e.Title, EmployeeLevel + 1 
    FROM dbo.MyEmployees AS e 
     INNER JOIN DirectReports AS d 
     ON e.ManagerID = d.EmployeeID 
) 
SELECT ManagerID, EmployeeID, Title, EmployeeLevel 
FROM DirectReports 
ORDER BY ManagerID; 
GO 

어디에서 저장합니까? 나는 이해하고 있기를 바란다. 이 쿼리는 재사용 할 수있는 곳에 저장하고 싶습니다.

+3

CTE는 항상 실제 문장의 * 일부 *입니다. 위의 경우에는 'SELECT'입니다. 당신의 질문은 "어디에서'SELECT' 문을 만들어야합니까?"와 같습니다. - 분명히 대답은 어디서나 가능합니다. –

답변

1

보기를 사용합니다. 이것은 계층 적 쿼리이지만 여전히 쿼리입니다.