使数据库对象自动重新生效
自动重新生效是运行时访问无效的数据库对象时使其自动重新生效的一种机制。
一个数据库对象通常依赖于一个或多个不同的基本对象。如果数据库对象所依赖的基本对象的状态在任何重要的方面作出更改(例如变更或删除基本对象),那么从属数据库对象会变无效。必须使无效的数据库对象重新生效,然后才能再次使用这些对象。重新生效是 DB2 软件据以重新处理无效从属对象的定义的过程,这样对象就会使用其基本对象的当前状态进行更新,从而将无效的从属对象转回为可用的有效对象。自动重新生效是运行时访问无效的数据库对象时使其自动重新生效的一种机制。
通常,数据库管理器将在无效对象下次被使用时尝试使那些对象重新生效。通过 auto_reval 配置参数启用了自动重新验证。缺省情况下,此注册表变量设为 DEFERRED(从 V9.5 或更低版本升级的数据库除外,对于这些数据库,auto_reval 设为 DISABLED)。
有关删除对象时受影响的从属对象以及那些从属对象何时重新生效的信息,请参阅 DROP 语句。
以下列表显示了当前支持自动重新生效功能的数据定义语言 (DDL) 语句:
- ALTER MODULE DROP FUNCTION
- ALTER MODULE DROP PROCEDURE
- ALTER MODULE DROP TYPE
- ALTER MODULE DROP VARIABLE
- ALTER NICKNAME(更改局部名或局部类型)
- ALTER TABLE ALTER COLUMN
- ALTER TABLE DROP COLUMN
- ALTER TABLE RENAME COLUMN
- CREATE OR REPLACE ALIAS
- CREATE OR REPLACE FUNCTION
- CREATE OR REPLACE NICKNAME
- CREATE OR REPLACE PROCEDURE
- CREATE OR REPLACE SEQUENCE
- CREATE OR REPLACE TRIGGER
- CREATE OR REPLACE VARIABLE
- CREATE OR REPLACE VIEW
- DROP FUNCTION
- DROP NICKNAME
- DROP PROCEDURE
- DROP SEQUENCE
- DROP TABLE
- DROP TRIGGER
- DROP TYPE
- DROP VARIABLE
- DROP VIEW
- RENAME TABLE
可以使用 ADMIN_REVALIDATE_DB_OBJECTS 过程来重新验证已经标记为无效的现有对象。
注意: 不支持自动重新验证源例程、外部 Java 和 C 例程。如果这三种例程变为无效,那么需要您拖动并重新创建这些例程。