在SQL中向视图添加新列

时间:2017-04-05 20:37:13

标签: sql-server view

这是我的观点

CREATE VIEW seat_availability AS
SELECT flightid,flightdate, maxcapacity,
FROM flight

我想添加2个名为'的预订座位'和' availableseats'它不存在于任何表中,但是我需要添加的列。

我已经在线完成了我的研究,有些人说你可以通过以下方式改变观点:

ALTER VIEW 

有些人说你不能这样做,必须从你刚创建的视图进行编辑。

我试过这个:

CREATE VIEW seat_availability AS
SELECT flightid,flightdate, maxcapacity, bookedseats varchar(10), availableseats varchar(10)
FROM flight

给出了这个错误:

  

错误:语法错误在或附近" varchar"第2行:...... ECT   flightid,flightdate,maxcapacity,bookedseats varchar(10 ...

我也尝试过ALTER VIEW:

ALTER VIEW seat_availability AS
SELECT flightid,flightdate, maxcapacity, bookedseats varchar(10), availableseats varchar(10)
FROM flight

我收到了这个错误:

  

错误:语法错误在或附近" AS"第1行:更改视图   seat_availability AS

如果列在其他表中存在,则添加列会很容易,但因为我需要添加2个不存在于任何表中的列,所以很难做到。如果有人可以提供帮助,我将非常感激。谢谢。

也许我可能需要放弃观点?并重新开始添加两个新列但是如何添加它们,因为它们不存在于我的数据库的任何表中?

1 个答案:

答案 0 :(得分:1)

您没有像这样定义列的数据类型。您让视图使用这样的基础数据类型。

ALTER VIEW seat_availability AS
SELECT flightid
    , flightdate
    , maxcapacity
    , bookedseats
    , availableseats
FROM flight

或者,如果您需要显式更改数据类型,则需要像这样使用CONVERT。

ALTER VIEW seat_availability AS
SELECT flightid
    , flightdate
    , maxcapacity
    , bookedseats = convert(varchar(10), bookedseats)
    , availableseats = convert(varchar(10), availableseats)
FROM flight