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 的用法 » 创建数据库 » 使用数据库对象 » 使用视图

 

视图依赖性

视图定义可以引用其它对象(包括列、表和其它视图)。当视图引用另一个对象时,该视图称为引用对象,其所引用的对象称为被引用对象。进一步而言,可以说引用对象依赖于其所引用的对象。

给定视图的被引用对象集包括该视图直接或间接引用的所有对象。例如,视图可以通过引用另一个引用该表的视图间接引用表。

假设有以下一组表和视图:

CREATE TABLE t1 ( c1 INT, c2 INT );
CREATE TABLE t2( c3 INT, c4 INT );
CREATE VIEW v1 AS SELECT * FROM t1;
CREATE VIEW v2 AS SELECT c3 FROM t2;
CREATE VIEW v3 AS SELECT c1, c3 FROM v1, v2;

通过上面的定义可以确定以下视图依赖性:

  • 视图 v1 依赖于 t1 的各个列及 t1 本身。

  • 视图 v2 依赖于 t2.c3 及 t2 本身。

  • 视图 v3 依赖于列 t1.c1 和 t2.c3、表 t1 和 t2 以及视图 v1 和 v2。

数据库服务器会跟踪给定视图所引用的列、表和视图。数据库服务器使用这些依赖性信息来确保对被引用对象的模式更改不会使引用视图处于不能使用的状态。下表说明视图依赖性如何影响常规视图和实例化视图。


依赖性和模式变更更改
目录中的视图依赖性信息