如何避免创建视图一定是批处理错误中唯一的语句?



CREATE VIEW部分被突出显示为错误,我无法一次运行完整的代码(它向我显示错误(以及如何避免这种情况?

-- Creating pizza view
CREATE VIEW pizza_view
AS
SELECT p.pizza_id
,p.pizza_name
,p.description AS 'pizza_desc'
,t.type_id AS 'range_id'
,t.type_name AS 'range_name'
,t.price AS 'range_price'
FROM pizza AS p
INNER JOIN type AS t ON p.type_id = t.type_id;
-- Creating side view
CREATE VIEW side_view
AS
SELECT so.order_id
,so.side_id
,s.side_name
,so.qty_ordered AS 'qty'
,s.price * so.qty_ordered AS 'total_cost'
FROM side AS s
INNER JOIN side_order AS so ON s.side_id = so.side_id;
-- Creating order view
CREATE VIEW order_view
AS
SELECT p.pizza_id
,po.order_id
,co.ready
,p.pizza_name
,t.type_id AS 'range_id'
,t.type_name AS 'range_name'
,t.price + i.surcharge AS 'cost_of_the_pizza'
FROM pizza AS p
INNER JOIN type AS t ON p.type_id = t.type_id
INNER JOIN pizza_order AS po ON p.pizza_id = po.pizza_id
INNER JOIN customer_order AS co ON po.order_id = co.order_id
INNER JOIN pizza_ingredient AS pi ON p.pizza_id = pi.pizza_id
INNER JOIN ingredient AS i ON pi.ingredient_id = i.ingredient_id;

在这里,您需要更正两个问题,例如分离和不同视图的不同名称。由于错误是提供用于创建视图的查询,因此存储过程和函数应位于单独的批处理中。

GO 向 SQLServer 实用工具发出一批 Transact-SQL 语句结束的信号。

例如:

Create view <YourViewName>
Select * from <YourViewName> -- This will give error.

这是因为这两个语句在同一批中。

-- Creating pizza view
CREATE VIEW pizza_view1
AS
SELECT 1 AS a --Your actual view statement here.
GO
-- Creating side view
CREATE VIEW side_view2
AS
SELECT 2 AS b --Your actual view statement here.
GO
-- Creating order view
CREATE VIEW order_view3
AS
SELECT 3 AS c --Your actual view statement here.

您可以在此处找到 Go 的文档。

最新更新