触发器的高级应用

  在触发器的应用中,常会遇到这种情况,即被触发的触发器试图更新与其相关联的原始的目标表,从而使触发器被无限循环地触发。对于该种情况,不同的数据库产品提供了不同的解决方案有些DBMS 对一个触发器的执行过程采取的动作强加了限制,有些DBMS 提供了内嵌功能,允许一个触发器主体对正在进行的触发器所处的嵌套级别,另一些DBMS 提供了一种系统设置,控制是否允许串联的触发器处理,最后一些DBMS 对可能触发的嵌套触发器级别的数目进行限制。在MS SQL Server 中,这种能触发自身的触发器被称为递归触发器。运目刂剖峭ü拗瓶赡艽シ⒌那短状シ⑵骷侗鸬氖拷邢拗频模硗猓? 通过是否允许触发嵌套触发器也能实现对它的控制。

    在MS SQL Server 中,除非递归触发器的数据库选项被设置,否则,一个触发器不会被递归触发。有两个类型的递归触发器。
    直接递归:即当一个触发器触发时,执行的动作又引起同一个触发器的触发,例如,某一更新操作引起某一表上的触发器被触发,该触发器又执行更新操作,从而又触发了该触发器;
    间接递归:即当一个触发器触发时,执行的动作又引起另外一个表的触发器被触发,第二个触发器又触发第一个触发器。

    同时触发器也可能和游标一起使用,从而使其功能大大增强。下面我们将给出一个例子,在该例子中。我们使用了游标和递归触发器,希望使读者对触发器有更全面的了解。





时间: 2024-09-18 11:48:03

触发器的高级应用的相关文章

MS SQL基础教程:触发器的高级应用

在触发器的应用中,常会遇到这种情况,即被触发的触发器试图更新与其相关联的原始的目标表,从而使触发器被无限循环地触发.对于该种情况,不同的数据库产品提供了不同的解决方案有些DBMS 对一个触发器的执行过程采取的动作强加了限制,有些DBMS 提供了内嵌功能,允许一个触发器主体对正在进行的触发器所处的嵌套级别,另一些DBMS 提供了一种系统设置,控制是否允许串联的触发器处理,最后一些DBMS 对可能触发的嵌套触发器级别的数目进行限制.在MS SQL Server 中,这种能触发自身的触发器被称为递归触

DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第4部分:触发器

开始之前 关于本系列 这份关于 DB2 SQL Procedure Developer 的六部分系列 教程将介绍 SQL Procedural Language 的所有基本构造和方法,并说明如何在存储过程.用户定义函数和触发器(包括错误处理和部署)中使用它,还将介绍一些 DB2 9.5 高级功能,如乐观锁定.分层查询和声明的全局临时表.本系列将提供如何调用存储过程.用户定义函数和触发器以及如何在过程与函数之间共享数据的细节.它将引入 DB2 开发工具,包括 IBM Data Studio.这些教

MS SQL Server入门教程

SQL Server 是一个关系数据库管理系统,它最初是由Microsoft,Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本.在Windows NT推出后,Microsoft与Sybase在SQL Server的开发上就分道扬镳了,Microsoft将SQL Server 移植到Windows NT. MS SQL基础教程:SQL Server 2000 简介 MS SQL基础教程:SQL Server 2000 的新特性 MS SQL基础教程:SQ

系统-sql server转换成access数据库

问题描述 sql server转换成access数据库 如果我有一个系统是java语言和sql server数据库,想转换成access数据库,怎么办 解决方案 把sqlserver数据库转成sql,在access里执行是一种办法,也可以参考这个 尝试将sqlserver 中数据导入到access中http://77857.blog.51cto.com/67857/161106/ 解决方案二: 1.换数据库挺麻烦的,先要转数据库结构,然后还要导数据. 2.原先的java连sql server要改

使用IBM Mobile Database实现Android设备企业级数据库同步

本文试图向读者介绍 IBM Mobile Database 的工作原理,并结合示例,展示如何使用 IBM Mobile Database 实现 Android 设备与后端企业级数据库的数据同步. IBM http://www.aliyun.com/zixun/aggregation/29908.html">solidDB 是一种内存型关系数据库,其运行效率相当于磁盘数据库的十倍,吞吐量为数万事务每秒,响应时间为微秒级.作为移动设备的迁移版本,IBM Mobile Database 继承了

Mysql高级之触发器

原文:Mysql高级之触发器 触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete). 看以下事件: 完成下单与减少库存的逻辑 Insert into o (gid,num) values (2,3);  // 插入语句 Update g set goods_num = goods_num - 3 where id = 2;// 更新过程   这两个逻辑可以看成一个整体,或者说, insert ---

SQL触发器在保持数据库完整性中的实际应用

触发器是SQL Server数据库应用中一个重要工具,是一种特殊类型的存储过程,应用非常广泛.一般存储过程主要通过存储过程名而被直接调用,触发器则是通过事件触发执行.触发器基于一个表来创建并和一个或多个数据修改操作(插入.更新或删除)相关联,可视作表的一部分.触发器与数据库中的表紧密相关,比如当对表执行INSERT.UPDATE或DELETE操作时,触发器就会自动执行. SQL Server 包括两大类触发器:DML 触发器和 DDL 触发器.其中DDL 触发器是 SQL Server 2005

JavaScript触发器

javascript|触发器 一个网站的前端由三个层构成.由XHTML构建的结构层,它包括结构化和有语义的标签,以及网站的内容.可以在这一层之上增加一个表现层(CSS)和一个行为层(JavaScript),它们使网站看起来更漂亮,对用户更友好.这三层之间应该保持严格的分离.打个比方来说,应该具有这样的可能性:可以重写整个表现层而完全不需要触动到结构层和行为层. 除了这种严格的分离,表现层和行为层都需要得到来自结构层的指令.它们必须知道在哪里应用样式,在什么时候初始化行为--换句话说:它们需要触发

Oracle高级复制

文章摘要: Oracle作为数据库平台,并且有的项目使用到了Oracle的数据库复制技术,其中也遇到了一些问题,因此在这里,我对Oracle的复制技术谈一下我个人的理解,希望能够对采用Oracle数据库的项目组有所帮助.其中在文中使用到的SQL脚本都是经过检验可以运行的.          -------------------------------------------------------------------------------- 正文:     Oracle高级复制 在开始之