触发器及示例演示

时间:2021-09-02 05:06:45

简介



触发器(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

当执行完成
     就会相应的表的触发器节点下生成相应的触发器如图
     触发器及示例演示
     当新建完成后,当我们向下机表中插入一条记录后。触发器就会自动删除在上机表中相同卡号的数据。