简介
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当
对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务
规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。(来自百度:原文链接 ) 从上述解释
中,可以了解到触发器类似于存储过程。但不像存储过程一样由程序调用,而是当更新、删除等对表进行操作时会自
动触发执行的sql语句。虽不严谨,但大致上就是这个意思。
简单使用
1.创建
CREATE TRIGGER TRIGGER_NAME ON {TABLE_NAME | VIEW_NAME} {FOR | After | Instead of } [ INSERT, UPDATE,DELETE ] AS SQL_Statement
ps:Instead of 替代引起触发的sql语句。
After:用于在执行完update、delete等操作后执行的的sql语句。除此之外instead of可以使用于视图与表。而
after只能使用于表。
2.删除
DROP TRIGGER trigger_name
3.查询
EXEC trigger_name
示例演示
1.Online_Info 与Offline_Info两个表
2.当向Offline_Info插入数据时;同时将Online_Info表中的相同卡号(CardNo)的一条数据删除。
3.知识储备:
Delete、Insert表 这两个表存在于内存中,并不是像其他数据库的表存储在数据库中。他们总是与被触发器作用的表的内容一
致。当执行完触发器后,自动删除这两个表的数据。
创建触发器
CREATE TRIGGER deleteOnlineinfo ON Offline_Info
FOR INSERT
AS
BEGIN
DELETE Online_Info FROM Online_Info ,inserted
WHERE ONLINE_INFO.CardNo =inserted .CardNo
END
当执行完成
就会相应的表的触发器节点下生成相应的触发器如图
当新建完成后,当我们向下机表中插入一条记录后。触发器就会自动删除在上机表中相同卡号的数据。