Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - SQL 的用法 » 表、视图和索引 » 视图 » 常规视图

 

禁用或启用常规视图 (SQL)

可以通过启用或禁用常规视图来控制数据库服务器能否使用该视图。

前提条件

您必须是具有 DBA 权限的用户,或者是视图的所有者。

启用常规视图前,必须重新启用其引用的任何已禁用视图。

上下文和注释

多个。

 ♦ 使用 SQL 禁用或启用常规视图

如果禁用某个视图,直接或间接引用该视图的其它视图会自动被禁用。因此,重新启用视图后,必须重新启用在其被禁用时与其相关的所有其它视图。禁用视图前,可以使用 sa_dependent_views 系统过程来确定相关视图的列表。

  1. 连接到数据库。

  2. 要禁用常规视图,请执行 ALTER VIEW...DISABLE 语句。

  3. 要启用常规视图,请执行 ALTER VIEW...ENABLE 语句。

结果

禁用某个常规视图时,数据库服务器将该视图的定义保留在数据库中;但该视图不能用来满足某个查询的条件。

如果某个查询显式地引用禁用的视图,则查询会失败并返回错误。

下一步

重新启用视图后,必须重新启用在其被禁用时与其相关的所有其它视图。禁用视图前,可以使用 sa_dependent_views 系统过程来确定相关视图的列表。

启用常规视图时,数据库服务器会使用数据库中存储的该视图的定义来将其重新编译。如果编译成功,视图状态更改为 VALID。如果重新编译未成功,说明模式可能在一个或多个被引用对象中被更改。如果是这样,必须更改视图定义或更改被引用对象,直到它们彼此一致,然后再启用视图。

视图一旦被禁用后,必须显式重新启用,数据库服务器才能使用它。

示例

以下示例会禁用 GROUPO 拥有的名为 ViewSalesOrders 的常规视图。

ALTER VIEW GROUPO.ViewSalesOrders DISABLE;

以下示例重新启用 GROUPO 拥有的名为 ViewSalesOrders 的常规视图。

ALTER VIEW GROUPO.ViewSalesOrders ENABLE;

 另请参见