我正在运行一个CREATE VIEW语句,该语句完全独立并且可以独立运行。在下面的两行中,我运行一个单独的SELECT语句以查看结果,该语句本身可以完美运行。
但是,我一起运行了整个脚本,但这是行不通的。
代码看起来像这样:
Prelude> partition (>3) [1,4,2,5]
([4,5],[1,2])
Prelude> partition (>3) [1,3,0,2]
([],[1,3,0,2])
Prelude> partition (>3) [1,7,8,0]
([7,8],[1,0])
Prelude> partition (>3) [1,7,8,9]
([7,8,9],[1])
错误消息是“关键字'SELECT'附近的语法不正确。”
答案 0 :(得分:2)
您需要在语句之间放置一个GO。分号不足以告诉解析器它们是独立的批次。
答案 1 :(得分:0)
您应该单独运行此查询,或者您的SQL server
年纪太大,无法运行CREATE OR ALTER VIEW
。首先创建视图,然后运行选择。
您还可以添加GO
,它将分隔成批:
--- These four lines run fine on their own.
CREATE OR ALTER VIEW view1 AS
SELECT column1, column2, column3
FROM table1;
GO
--- This line runs fine on its own
SELECT * FROM view1
--- If I run the whole script it doesn't work
答案 2 :(得分:0)
添加批处理分隔符,转到,stmt之间,创建视图结束stmt和您从视图中选择的内容。
还需要添加检查是否存在视图,并根据sql版本将其首先删除或更改以更改或创建视图。
IF OBJECT_ID('FOO') IS NOT NULL
DROP VIEW FOO;
GO
CREATE VIEW FOO
AS
SELECT * FROM sysobjects;
GO
SELECT * FROM FOO
GO