触发器使用手册

来源:互联网 发布:淘宝直通车一天多少钱 编辑:程序博客网 时间:2024/06/08 07:38

  • 一 理解触发器
    • 1 概述
    • 2组成
    • 3 优点
  • 二SQL中触发器的应用
    • 1 创建INSERT触发器
    • 2 UPDATE触发器
    • 3 DELETE触发器
    • 4 INSTEAD OF触发器
  • 三 删除触发器
  • 四 结束语

一. 理解触发器


  触发器是一种存储过程,是一种特殊类型的存储过程。触发器只要满足一定的条件,它就可以触发完成各种简单和复杂的任务,可以帮助用户更好地维护数据库中数据的完整性

1.1 概述

  触发器是一种与数据表紧密关联的特殊的存储过程。与存储过程一样,触发器在数据库里一独立的对象存储。但是与存储过程不同的是,存储过程通过其他程序来启动运行,而触发器不能直接被调用,只能通过事件来启动运行。即当某个事件发生(触发器表内容被更改)时,触发器自动第隐式运行,并且触发器不能传递或接收参数。

1.2组成

  触发器有触发器语句、触发器主体和触发器限制3部分组成。

  • 触发语句:能够触发触发器主体和指定触发器的关联表。主要语句有UPDATE语句、DELETE语句和INSERT之类的DML语句。
  • 触发器主体是指在触发触发器语句时执行的PL/SQL块。
  • 触发器的限制是指通过使用WHEN子句限制触发器。

  事件的触发有before和after两种。Before触发器是在事件发生前触发,After触发器是在事件发生后被触发。

1.3 优点

  • 当发生对数据的更新维护时,与之相关对的触发器就会立即被激活,触发器会被自动调用。
  • 触发器可以对需要存储的数据加以限制。
  • 完成数据库中相关表之间的级联修改。级联修改是指为了保证数据之间的逻辑性及依赖关系,对一张表进行修改的同时,能够自动实现其他表中需要进行的修改。
  • 注意:谨慎使用触发器,因为每次访问表时都可能激活某个触发器,给数据库带来负担。所以,尽量用触发器执行别的方法不嫩执行的操作。

二.SQL中触发器的应用


2.1 创建INSERT触发器

  当向Category表中插入数据时,DBMS将显示“数据添加成功!”,具体代码格式如下。

CREATE  TRIGGER [dbo].[trigCategoryinsert]   ON  [dbo].[category]   after insertAS BEGIN    print '数据添加成功!'END

结果显示

2.2 UPDATE触发器

CREATE  TRIGGER [dbo].[trigCategoryupdate]   ON  [dbo].[category]   after updateAS BEGIN    print '数据修改成功!'END

结果显示

2.3 DELETE触发器

CREATE  TRIGGER [dbo].[Categorydelete]   ON  [dbo].[category]   after deleteAS BEGIN    print '数据成功删除!'END

2.4 INSTEAD OF触发器

  使不能被更新的视图支持更新操作。

USE [newssystem]GO/****** Object:  Trigger [dbo].[trigCategoryDelete]    Script Date: 10/30/2016 01:53:25 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:      杨倩-- Create date: 201691917:24:39-- Description: 删除类别触发器-- =============================================ALTER TRIGGER [dbo].[trigCategoryDelete]   ON  [dbo].[category]   instead of DELETEAS BEGIN    from    declare @caId int    select @caId=id from deleted     --删除评论    delete comment  where newsId in(select newsId from news where caId=@caId )    --删除新闻    delete category where id=@caId      --删除类别END

三. 删除触发器

  使用DROP TRIGGER语句实现删除触发器的操作。
语法格式如下。

DROP TRIGGER trigger_name

四. 结束语

  熟练的操作SQL基本语句CURD,对数据库的学习与应用都会有很大的提升空间。触发器是特殊的存储过程,你了解了吗?

1 0
原创粉丝点击