create trigger 命令
示例 请参阅
创建表的删除、插入或更新触发器。
语法
CREATE TRIGGER ON TableName
FOR DELETE | INSERT | UPDATE AS lExpression
参数
TableName
在当前数据库中指定要创建触发器的表。
FOR DELETE | INSERT | UPDATE
指定 Visual FoxPro 创建的触发器类型。
如果所指定类型的触发器已经存在并且 SET SAFETY 是 ON,Visual FoxPro 会提示您是否要改写已存在的触发器。如果 SET SAFETY 是 OFF,则已存在的触发器被自动改写。
AS lExpression
指定触发器激发时,要计算的逻辑表达式。
lExpression 可以是返回逻辑值的用户自定义函数或存储过程。可用 MODIFY PROCEDURE 创建表的存储过程。
用户自定义函数或存储过程可通过 AERROR( ) 决定激发触发器的表的名称以及触发器的类型。
如果 lExpression 计算结果为“真”(.T.),则执行激发触发器的命令或事件。
如果 lExpression 的计算结果为“假”(.F.),不执行激发触发器的命令或事件。如果 ON ERROR 过程有效,则执行 ON ERROR 过程来代替激发触发器的命令或事件。如果 ON ERROR 过程无效,则不执行激发触发器的命令或事件,同时 Visual FoxPro 产生错误信息。
说明
利用 CREATE TRIGGER 来俘获引起表中记录被删除、添加或更改的事件。只有数据库表能创建删除、插入或更新触发器。可用 CREATE DATABASE 来创建数据库,用 ADD TABLE 把表添加到数据库中。
CREATE TRIGGER 要求独占使用数据库。若要以独占方式打开数据库,可在 OPEN DATABASE 中包含 EXCLUSIVE。
下面的列表描述了激发删除、插入或更新触发器的事件。
删除触发器
发出 DELETE 命令。
在浏览窗口或编辑窗口的“表”菜单中对记录作删除记号。
插入触发器
更新触发器
引起记录被修改的任何事件。例如,当表单中的一个控制更改一个字段的内容时,更新触发器被激发。
下面的规则适用于用 CREATE TRIGGER 创建的触发器:
如果表缓冲不起作用,当记录被更新时更新触发器被激发,这个激发是在检查了规则以及主索引和候选索引关键字之后发生。
如果表缓冲起作用,当发出 TABLEUPDATE( ) 时,激发更新触发器,表中的每个缓冲记录都被更新。