2013-12-17 1 views
0

SQL Server 2008의 INFORMATION_SCHEMA에 CTE가 있습니까? INFORMATION_SCHEMA의 CTE를 참조합니다.

나는 열팽창 계수를 사용하여 쿼리를 작성하기 위해 노력하고있어, 나는이 같은 INFORMATION_SCHEMA에서 CTE를 참조 할 필요가 :

SELECT R.RowNum, c.COLUMN_NAME 
FROM 
(
    select ROW_NUMBER() over (partition by c.firstName, c.lastName, c.userEmail,  c.assessmentTitle order by c.officeTitle asc) as RowNum 
    from class as c 
) as R 
inner join INFORMATION_SCHEMA.[COLUMNS] as c on 
c.TABLE_NAME = 'myCTE' and c.COLUMN_NAME not in('LastName', 'firstName',  'userEmail', 'officeTitle') 

하지만 어떤 결과를 얻을 수 없습니다.

INFORMATION_SCHEMA에서 CTE를 참조 할 수 없기 때문입니다.

이 방법을 사용할 수 있습니까? 이 테이블 변수처럼 실행됩니다으로

감사

답변

2

CTE를가 정보 스키마에 존재하지 않는, 그것은 단지 "존재".

해결책은 cte 자체가 아니라 cte가 참조하는 테이블을 참조하는 것입니다. 여러 테이블 인 경우 cte를 사용하여 뷰를 작성하십시오.

+0

내 CTE가 2 개의 테이블 중 하나입니다. INFORMATION_SCHEMA를 사용하여 JOIN을 수행 할 수 있습니까? 감사합니다 – SkyeBoniwell

+1

그 두 테이블을 사용하여보기를 만든 다음 정보 스키마를 통해보기에 액세스 할 수 있습니다. –