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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 创建数据库 » 使用数据库对象 » 使用常规视图

 

变更常规视图

可以使用 Sybase Central 或 Interactive SQL 变更常规视图。

在 Sybase Central 中,可以在右窗格中对象的 [SQL] 选项卡上变更视图、过程和函数的定义。通过选择视图然后选择 [文件] » [在新建窗口中编辑],可以在单独的窗口中编辑视图。在 Interactive SQL 中,可以使用 ALTER VIEW 语句变更视图。ALTER VIEW 语句会用新视图定义替换原定义,但保留视图上的权限。

不能重命名现有视图。而必须以新名称创建一个新视图,将以前的定义复制到新视图中,然后删除旧视图。

如果使用 ALTER VIEW 语句变更另一个用户拥有的视图,必须通过包含该所有者来限定名称(例如,GROUPO.EmployeeConfidential)。如果不限定名称,数据库服务器就会查找您拥有的该名称的视图,并对其进行变更。如果没有这样的视图,服务器将返回错误。

视图变更与视图依赖性

如果要变更某个常规视图的定义,但有其它视图依赖于该视图,则变更完成后可能需要采取一些附加步骤。例如,变更某个视图后,数据库服务器会自动重新进行编译,使数据库服务器能够使用。如果存在相关常规视图,数据库服务器也会禁用并重新启用这些视图。如果无法启用相关视图,则其状态被指定为 INVALID,您必须使所变更常规视图的定义与相关常规视图的定义一致,或者使相关常规视图的定义与所变更常规视图的定义一致。

要确定某个常规视图是否存在相关视图,请使用 sa_dependent_views 系统过程。请参见sa_dependent_views 系统过程

有关基础对象的模式变更如何影响视图的信息,请参见视图依赖性

♦  变更常规视图 (Sybase Central)
  1. 以具有 DBA 权限的用户身份或以常规视图所有者身份连接到数据库。

  2. 在左窗格中,双击 [视图]。

  3. 选择视图。

  4. 在右窗格中,单击 [SQL] 选项卡,然后编辑视图的定义。

    提示

    如果要编辑多个视图,可以为每个视图单独打开一个窗口,而不是在右窗格的 [SQL] 选项卡上编辑每个视图。打开单独窗口的方法是:选择视图,然后选择 [文件] » [在新建窗口中编辑]。

  5. 选择 [文件] » [保存]。

♦  变更常规视图 (SQL)
  1. 以具有 DBA 权限的用户身份或以常规视图所有者身份连接到数据库。

  2. 执行 ALTER VIEW 语句。

示例

此示例说明当变更常规视图时,实际上是在替换视图的定义。在本例中,通过更改视图定义,列名称更具信息性。

CREATE VIEW DepartmentSize ( col1, col2 ) AS
   SELECT DepartmentID, COUNT( * )
   FROM Employees GROUP BY DepartmentID;
ALTER VIEW DepartmentSize ( DepartmentNumber, NumberOfEmployees ) AS
   SELECT DepartmentID, COUNT( * )
   FROM Employees GROUP BY DepartmentID;

下面的示例说明在仅更改常规视图的某个属性时无需重新定义视图。在本例中,视图被设置为隐藏其定义。

ALTER VIEW DepartmentSize SET HIDDEN;

请参见ALTER VIEW 语句