本节说明启用和禁用常规视图。有关启用和禁用实例化视图的信息,请参见启用和禁用实例化视图。
可以通过启用或禁用常规视图来控制数据库服务器能否使用该视图。禁用某个常规视图时,数据库服务器将该视图的定义保留在数据库中;但该视图不能用来满足某个查询的条件。如果某个查询显式地引用禁用的视图,则查询会失败并返回错误。视图一旦被禁用后,必须显式重新启用,数据库服务器才能使用它。
如果禁用某个视图,直接或间接引用该视图的其它视图会自动被禁用。因此,重新启用视图后,必须重新启用在其被禁用时与其相关的所有其它视图。禁用视图前,可以使用 sa_dependent_views 系统过程来确定相关视图的列表。请参见sa_dependent_views 系统过程。
启用常规视图时,数据库服务器会使用数据库中存储的该视图的定义来将其重新编译。如果编译成功,视图状态更改为 VALID。如果重新编译未成功,说明模式可能在一个或多个被引用对象中被更改。如果是这样,必须更改视图定义或更改被引用对象,直到它们彼此一致,然后再启用视图。
启用常规视图前,必须重新启用和禁用其所引用的视图。
可以对禁用的对象授予权限。对禁用对象的权限存储在数据库中,在对象被启用时生效。
以具有 DBA 权限的用户身份或以常规视图所有者身份连接到数据库。
在左窗格中,双击 [视图]。
右击视图,然后选择 [禁用]。
以具有 DBA 权限的用户身份或以常规视图所有者身份连接到数据库。
执行 ALTER VIEW ...DISABLE 语句来禁用每个相关实例化视图。
以下示例会禁用 GROUPO 拥有的名为 ViewSalesOrders 的常规视图。
ALTER VIEW GROUPO.ViewSalesOrders DISABLE; |
以具有 DBA 权限的用户身份或以常规视图所有者身份连接到数据库。
在左窗格中,双击 [视图]。
右击视图,然后选择 [重新编译和启用]。
以具有 DBA 权限的用户身份或以常规视图所有者身份连接到数据库。
执行 ALTER VIEW ...ENABLE 语句。
以下示例重新启用 GROUPO 拥有的名为 ViewSalesOrders 的常规视图。
ALTER VIEW GROUPO.ViewSalesOrders ENABLE; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |