1

使用以下查询,

WITH 
    cteTest (Employee_ID)
    AS
    (
        SELECT employee_ID FROM pep.dbo.labor_ticket
    )
SELECT Employee_ID FROM cteTest;

我得到以下回报:

Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'WITH'.

在我看来是对的。我问了一个关于子查询的类似问题,但同样的逻辑在这里不适用,因为我用名称 cteTest 为表起别名。少了什么东西?

4

2 回答 2

3

尝试在“WITH”前面加一个分号。

;WITH 
    cteTest (Employee_ID)
    AS
    (
        SELECT employee_ID FROM pep.dbo.labor_ticket
    )
SELECT Employee_ID FROM cteTest;
于 2011-02-14T22:29:32.833 回答
1

看起来这个特定的数据库在不支持 CTE 的 SQL Server 8.0 上。看起来我将不得不解决子查询。

数字,为一家拥有 3 个不同版本的 SQL Server 的公司工作,我会忽略这一点。其他服务器是 9.0 并且很好地支持这个功能,我从来没有用 CTE 针对这个特定的数据库写过东西,每天都学习新的东西 :)

于 2011-02-14T22:33:29.820 回答