首页 > 解决方案 > 使用 CTE 创建视图 - “Incorrect Syntax Near Go”错误

问题描述

这里的答案中,我了解到GO在创建 CTE 之后和之前使用CREATE VIEW应该在理论上处理以下错误:

CREATE VIEW MUST BE THE ONLY STATEMENT IN THE BATCH

但是我现在收到一个Incorrect Syntax Near GO错误,我不确定是什么原因。

我的代码在下面进行了简化,但所有 ;() 标点符号都是我拥有的

with RESULT1 as (
                code here
                ),
with RESULT2 as (
                code here
                ),
with RESULT3 as (
                code here
                ),
with RESULT4 as (
                code here
                )

GO

create view TestingView as 
            select RESULT4.*
            from RESULT4

标签: sqltsql

解决方案


多个 CTE 的语法是:

with RESULT1 as (
                code here
                ),
     RESULT2 as (
                code here
                ),
     RESULT3 as (
                code here
                ),
     RESULT4 as (
                code here
                )
SELECT . . .
FROM . . .;

没有GO。CTE 不是临时表。

如果你想创建一个视图,它会WITH. 或者,换一种说法,CTE 连接到.SELECT而不是CREATE VIEW.


推荐阅读