SQLServer之修改视图
修改视图注意事项
修改先前创建的视图。 其中包括索引视图。 alter view不影响相关的存储过程或触发器,并且不会更改权限。
如果原来的视图定义是使用 with encryption 或 check option创建的,则只有在 alter view 中也包含这些选项时,才会启用这些选项。
如果当前所用的视图使用 alter view 来修改,则数据库引擎使用对该视图的排他架构锁。 在授予锁时,如果该视图没有活动用户,则数据库引擎将从过程缓存中删除该视图的所有副本。 引用该视图的现有计划将继续保留在缓存中,但一旦被调用就会重新编译。
alter view可应用于索引视图,但是,alter view会无条件地删除视图的所有索引。
若要执行 alter view,至少需要具有对 object 的 alter 权限。
使用ssms数据库管理工具修改视图
1、连接数据库,选择数据库,展开数据库-》展开视图-》选择要修改的视图-》选择设计。
2、在关系图窗格中-》修改视图-》修改完成,点击保存。
3、使用修改的视图。
使用t-sql脚本修改视图
语法:
--声明数据库引用
use 数据库名;
go
--修改视图
alter view [架构名][.]视图名
with encryption,schemabinding,view_metadata
as
select_statement
[check option];
go
语法解析:
schema_name
视图所属架构的名称。
view_name
要更改的视图。
column
将成为指定视图的一部分的一个或多个列的名称(以逗号分隔)。
encryption
适用范围: sql server 2008 到 sql server 2017 和 azure sql database。
加密 sys.syscomments 中包含 alter view 语句文本的项。 with encryption 可防止视图作为 sql server 复制的一部分进行发布。
schemabinding
将视图绑定到基础表的架构。 如果指定了 schemabinding,则不能以可影响视图定义的方式来修改基表。 必须首先修改或删除视图定义本身,然后才能删除要修改的表的相关性。 使用 schemabinding 时,select_statement 必须包含所引用的表、视图或用户定义函数的两部分名称 (schema.object)。 所有被引用对象都必须在同一个数据库内。
不能删除参与使用 schemabinding 子句创建的视图的表或视图,除非该视图已被删除或更改,而不再具有架构绑定。 否则, 数据库引擎将引发错误。 另外,如果对参与具有架构绑定的视图的表执行 alter table 语句,而这些语句又会影响视图定义,则这些语句将会失败。
view_metadata
指定为引用视图的查询请求浏览模式的元数据时, sql server 实例将向 db-library、odbc 和 ole db api 返回有关视图的元数据信息,而不返回基表的元数据信息。 浏览模式的元数据是 数据库引擎实例返回到客户端 db-library、odbc 和 ole db api 的额外元数据。 如果使用此元数据,客户端 api 将可以实现可更新客户端游标。 浏览模式的元数据包含结果集中的列所属的基表的相关信息。
对于使用 view_metadata 创建的视图,浏览模式的元数据在描述结果集内视图中的列时,将返回视图名,而不返回基表名。
使用 with view_metadata 创建视图时,如果该视图具有 insert 或 update instead of 触发器,则视图的所有列(timestamp 列除外)都可更新。 有关详细信息,请参阅 create view (transact-sql) 中的“注释”部分。
as
视图要执行的操作。
select_statement
定义视图的 select 语句。
with check option
要求对该视图执行的所有数据修改语句都必须符合 select_statement 中所设置的条件。
示例:
--声明数据库引用
use testss;
go
--修改视图
alter view dbo.view1
with encryption,schemabinding,view_metadata
as
select a.id,a.name,a.sex,a.height,b.id as classid
from dbo.test1 as a
inner join dbo.test3 as b on a.classid=b.id;
go
使用修改后的视图
推荐阅读
-
讲解vue-router之命名路由和命名视图
-
mysql视图之创建可更新视图的方法详解
-
sqlserver一次性修改多条
-
4.ASP.NET MVC 5.0 视图之模型绑定
-
SQLServer之服务器连接
-
我爱Flask框架之Flask简介与URL和视图介绍
-
ASP.NET MVC5网站开发之添加删除重置密码修改密码列表浏览管理员篇2(六)
-
mysql事件之修改事件(ALTER EVENT)、禁用事件(DISABLE)、启用事件(ENABLE)、事件重命名及数据库事件迁移操作详解
-
mysql视图之创建视图(CREATE VIEW)和使用限制实例详解
-
mysql视图之确保视图的一致性(with check option)操作详解