触发器概述
日期:2008年4月14日 作者: 查看:[大字体 中字体 小字体]-
在上面几节我们介绍了一般意义的存储过程,即用户自定义的存储过程和系统存储过 程。本节将介绍一种特殊的存储过程,即触发器。
在余下各节中我们将对触发器的概念、 作用以及对其的使用方法作详尽介绍,使读者了解如何定义触发器,创建和使用各种不同 复杂程度的触发器。
12.5.1 触发器的概念及作用
触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主 要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当 对某一表进行诸如UPDATE、 INSERT、 DELETE 这些操作时,SQL Server 就会自动执行 触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规 则。
触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数 据的一致性。除此之外,触发器还有其它许多不同的功能:
(1) 强化约束(Enforce restriction)
触发器能够实现比CHECK 语句更为复杂的约束。(2) 跟踪变化Auditing changes
(3) 级联运行(Cascaded operation)。
触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。
触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入)而该操作又导致该表上触发器被触发。(4) 存储过程的调用(Stored procedure invocation)。
为了响应数据库更新触,发器可以调用一个或多个存储过程,甚至可以通过外部过程的调用而在DBMS( 数据库管理系统)本身之外进行操作。
由此可见,触发器可以解决高级形式的业务规则或复杂行为限制以及实现定制记录等一些方面的问题。例如,触发器能够找出某一表在数据修改前后状态发生的差异,并根据这种差异执行一定的处理。此外一个表的同一类型(INSERT、 UPDATE、 DELETE)的多个触发器能够对同一种数据操作采取多种不同的处理。
总体而言,触发器性能通常比较低。当运行触发器时,系统处理的大部分时间花费在参照其它表的这一处理上,因为这些表既不在内存中也不在数据库设备上,而删除表和插入表总是位于内存中。可见触发器所参照的其它表的位置决定了操作要花费的时间长短。
12.5.2 触发器的种类
SQL Server 2000 支持两种类型的触发器:AFTER 触发器和INSTEAD OF 触发器。其中AFTER 触发器即为SQL Server 2000 版本以前所介绍的触发器。该类型触发器要求只有执行某一操作(INSERT UPDATE DELETE) 之后,触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。对于AFTER 触发器,可以定义哪一个触发器被最先触发,哪一个被最后触发,通常使用系统过程sp_settriggerorder 来完成此任务。
INSTEAD OF 触发器表示并不执行其所定义的操作(INSERT、 UPDATE、 DELETE),而仅是执行触发器本身。既可在表上定义INSTEAD OF 触发器,也可以在视图上定义INSTEAD OF 触发器,但对同一操作只能定义一个INSTEAD OF 触发器。(出处:网侠)
-
- 触发器概述 相关文章:
- ·女性外生殖器(图)
- ·女性性器官--阴蒂(图)
- ·路由器安全设置详解
- ·宽带共享该怎样设置无线路由器
- ·Oracle触发器详细介绍
- ·上海贝尔阿尔卡特Home Plus Plus 500 ADSL路由器
- ·真三国无双3 最强武器 - 真三国无双4攻略秘籍 - 真三国无双4
- ·10大国外代理服务器网站
- ·用C#写计算器程序
- ·各种ADSL路由器端口映射设置
- 触发器概述 相关软件
- ·反恐精英 CS 1.5 机器人补丁
- ·Storm Player 影音风暴播放器 V1.0.4
- ·疯狂机器3之新实验
- ·风云2之七武器
- ·真三国无双4 全能修改器
- ·MP3超强铃声转换器 V6.0
- ·《仙剑奇侠传3》修改器首发版
- ·《仙剑奇侠传2》修改器
- ·麦克风混响效果器 V1.0 绿色版
- ·珍藏84合1模拟器+84款经典游戏
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:存储过程概述
精品推荐
热点TOP10
- ·SQL里的cast和convert
- ·精妙SQL语句收集
- ·CS服务器架设方法
- ·SQL Server不存在或访问被拒绝 问题的解决
- ·触发器概述
- ·学习SQL语句之SQL语句大全
- ·数据库连接字符串大全
- ·SQLPLUS命令的使用大全
- ·SQL Server 练习题
- ·SQL Server不存在或访问被拒绝 问题的解决
- ·学习SQL SERVER的存储过程-之一认识存储过程语法
- ·MS-SQL开发常用汇总和t-sql技巧集锦
- ·什么是SQL注入法攻击
- ·SQL中CASE的用法
- ·提高查询速度:SQL Server数据库优化方案
- ·一道褒贬不一的SQL考试题
- ·SQLSERVER中,数据库同步的实现
- ·认识VF--Visual FoxPro 漫谈
- ·巴塞尔新资本协议概述
- ·局域网常见故障解决办法
特别推荐
- ·MySQL导入导出方法与工具
- ·CS服务器架设方法
- ·改进的socket控件
- ·什么是SQL注入法攻击
- ·用SQL语句删除重复记录的四种方法
- ·数据库查询优化
- ·MySQL常见错误问答!
- ·MySQL从后门进企业市场
- ·精妙SQL语句收集
- ·如何在WinNT/2K/XP下启动纯DOS
- ·自己动手做一个SQL解释器
- ·SQL SERVER实用技巧
- ·动态创建MSSQL数据库表存储过程
- ·数据库的分页问题
- ·DM分区软件使用详解
- ·对ADSL接入方式铜缆可用线对率分析
- ·收集的host文件网站黑名单
- ·修复SQL Server 2000数据库之实战经验
- ·实用的存储过程之一
- ·IIS5 ISAPI Extension Back Door
