Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

使用过程、触发器和批处理

触发器简介


触发器是特殊形式的存储过程,在执行修改数据的查询时自动执行。只要参照完整性和其它声明性约束不足够,就可以使用触发器。

有关参照完整性的详细信息,请参见确保数据完整性CREATE TABLE 语句

您可以实现更详细的检查及更复杂的参照完整性;或者可以对新数据实施检查,但允许旧数据将违反约束。触发器的另一用途是记录与数据库表有关的活动,而与使用数据库的应用程序无关。

触发器执行权限  
触发器通过关联表的所有者的权限执行,而不是通过其操作导致触发器触发的用户 ID 的权限执行。触发器可以修改用户无法直接修改的表中各行。
触发器事件 

可以对以下一种或多种触发事件定义触发器:

操作 说明
INSERT 只要有新行插入到与触发器关联的表中,就调用触发器。
DELETE 只要删除了关联表中的行,就调用触发器。
UPDATE 只要更新了关联表中的行,就调用触发器。
UPDATE OF column-list 只要更新了关联表中的行,且修改了 column-list中的列,就调用触发器。

您可以为需要处理的每个事件分别编写触发器,或者,如果您有一些共享操作以及一些取决于事件的操作,您可以为所有事件创建触发器并使用 IF 语句区分所发生的操作。

有关详细信息,请参见触发器操作条件

触发时间 

触发器可以是行级别语句级别

对于在执行时依赖参照完整性操作(例如在操作正执行或未执行的级联更新或删除)的触发器,其执行时间灵活的特点十分有用。

如果在触发器执行时发生错误,则触发该触发器的操作将失败。INSERT、UPDATE 和 DELETE 是原子操作(请参见原子复合语句)。在这些操作失败时,该语句的所有结果(包括触发器的结果以及这些触发器调用的任何过程的结果)都恢复为其操作前状态。

有关触发器语法的完整说明,请参见 CREATE TRIGGER 语句


创建触发器
执行触发器
变更触发器
删除触发器
触发器执行权限

Collection Contents 上一页 下一页 PDF