消息208,级别16,状态1,行1无效的对象名称

时间:2015-02-03 08:55:34

标签: sql sql-server

我尝试从使用 WITH 创建的 SalesData 进行选择, 查询是

    with SalesData (TotalSold, OrderYear, TerritoryName)
    AS (

    SELECT SUM(soh.TotalDue) AS 'TotalSold'
        , YEAR(soh.OrderDate) AS 'OrderYear'
        , st.Name AS 'TerritoryName'
    FROM Sales.SalesOrderHeader AS soh
    INNER JOIN Sales.SalesTerritory AS st
    ON soh.TerritoryID = st.TerritoryID
    GROUP BY YEAR(soh.OrderDate)
            ,st.Name
)
SELECT TotalSold FROM SalesData

但是SSMS给了我这个错误:

  

消息208,级别16,状态1,行1无效的对象名称

我正在使用Avdentureworks数据库示例。

enter image description here

知道为什么会这样吗?虽然它在演示视频中得到了很好的执行 我在看。

1 个答案:

答案 0 :(得分:0)

基于@DeepakPawar的评论,解决方案是

  

在前面加上分号

;with cte (...) as ....

还提到了@Pரதீப்-指的是以下WITH common_table_expression (Transact-SQL) documentation

  

当在批处理语句中使用CTE时,必须在语句之前加上分号