sql server如何向视图中添加列

sql server如何向视图中添加列,sql,sql-server,view,Sql,Sql Server,View,使用以下sql创建视图: create view [dbo].[tblDimSession] AS SELECT * FROM OPENQUERY(CDH_DEV_BJ_LS, 'select * from Session') 此视图是通过使用配置单元访问数据创建的 我想添加一个名为sessionID的新列,int类型必须是自动增加的列 如何更改视图,或者在创建视图时可以添加列 谢谢。如果您只想在视图中添加其他列,可以在创建视图或更改视图过程中完成。如果要添加自动增量列,

使用以下sql创建视图:

create view [dbo].[tblDimSession] AS 
    SELECT * 
    FROM OPENQUERY(CDH_DEV_BJ_LS, 'select * from Session') 
此视图是通过使用配置单元访问数据创建的

我想添加一个名为
sessionID
的新列,
int
类型必须是自动增加的列

如何更改视图,或者在创建视图时可以添加列


谢谢。

如果您只想在视图中添加其他列,可以在
创建视图
更改视图
过程中完成。如果要添加自动增量列,则应在表中完成,而不是仅添加到视图中。但是,如果必须将其添加到视图中,则可以按以下方式进行操作

CREATE VIEW MyView as Select*,MyExtraColumn From MyTable
ALTER TABLE
不同,您不需要指定
ADD
DROP
语句,修改视图比修改SP或TABLE函数更容易。要添加自动递增的列,可以执行以下操作

ALTER VIEW MyView as SELECT*,ROW_NUMBER()OVER(ORDER BY MyUniqueColumn)as sessionID FROM MyTable

注意:如果您使用的列不是唯一的,您的编号可能会在每次执行时发生变化。

您应该阅读数据库的“ALTER”表/视图。无关:从表/视图中选择星号(*)不是一种好的做法。这会妨碍优化器,如果是SQL Server,除非显式重新编译视图,否则源中的新列将不会显示,尽管有星号。