SQL SERVER 2008中的INFORMATION_SCHEMA中是否存在CTE?
我正在尝试使用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。
有没有办法让这项工作?
感谢
答案 0 :(得分:2)
信息模式中不存在cte,它只是在运行时“存在”,就像表变量一样。
解决方案是引用cte引用的表,而不是cte本身,如果是多个表,则使用cte创建视图。