手机
当前位置:查字典教程网 >编程开发 >数据库其他 >特殊的存储过程-触发器概述
特殊的存储过程-触发器概述
摘要:本节将介绍一种特殊的存储过程,即触发器。一、触发器的概念触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事...

本节将介绍一种特殊的存储过程,即触发器。

一、触发器的概念

触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLServer就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合由这些SQL语句所定义的规则。

二、触发器的作用

触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外,触发器还有其它许多不同的功能:

A.强化约束

触发器能够实现比CHECK语句更为复杂的约束。

B.跟踪变化

触发器可以侦测数据库内的操作从而不允许数据库中未经许可的指定更新和变化。

C.级联运行

触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。例如:某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入),而该操作又导致该表上触发器被触发。

D.存储过程的调用

为了响应数据库更新,触发器可以调用一个或多个存储过程,甚至可以通过外部过程的调用而在DBMS本身之外进行操作。

由此可见,触发器可以解决高级形式的业务规则或复杂行为限制以及实现定制记录等一些方面的问题。例如,触发器能够找出某一表在数据修改前后状态发生的差异,并根据这种差异执行一定的处理。此外一个表的同一类型(INSERT、UPDATE、DELETE)的多个触发器能够对同一种数据操作采取多种不同的处理。

总体而言,触发器性能通常比较低。

三、触发器的种类

SQLServer2000支持两种类型的触发器:AFTER触发器和INSTEADOF触发器。

AFTER触发器要求只有执行某一操作(INSERT、UPDATE、DELETE)之后,触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。

INSTEADOF触发器表示并不执行其所定义的操作(INSERT、UPDATE、DELETE),而仅是执行触发器本身。既可在表上定义INSTEADOF触发器,也可以在视图上定义INSTEADOF触发器,但对同一操作只能定义一个INSTEADOF触发器。

注:在本实验中不讲INSTEADOF触发器

【特殊的存储过程-触发器概述】相关文章:

在SQL SERVER中查询数据库中第几条至第几条之间的数据SQL语句写法

SQL语句详细说明[部分]

ACCESS转化成SQL2000需要注意的几个问题小结

Mssql,Access的sql经典SQL语句大全

SQL 查询语句积累

带参数的sql和不带参数的sql存储过程区别第1/2页

使用SQL Mail收发和自动处理邮件中的扩展存储过程简介

复杂系统中的用户权限数据库设计解决方案

NoSQL数据库的分布式算法详解

复制数据库表中两个字段数据的SQL语句

精品推荐
分类导航