当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server数据库技术(79)

MSSQL
如何设置SQL Server数据库全文索引服务
使用SQL Server 2000索引视图提高性能
Sql Server在安装时提示挂起的解决方法
解析SQL Server 2008中的新语句:MERGE
使用SQL Server时最容易忽略的21个问题
讲解SQL Server数据库的触发器安全隐患
轻松掌握执行一个安全的SQL Server安装
如何使用SQL Server中的客户端配置工具
从SQL Server2000升级到2005的过程解析
Sql Server 数据库超时问题的解决方法
解决SQLServer最大流水号的两个好方法
解析:轻松掌握在 Mac OS X中安装MySQL
细化解析:轻松掌握怎样测试 MySQL安装
细化解析:MySQL 服务器究竟有多稳定?
MySQL数据库中与 ALTER TABLE 有关的问题
细化解析:MySQL 数据库中对XA事务的限制
使用MySql和php出现中文乱码的解决方法
Mysql的最大连接数怎样用java程序测试
MySQL列类型的选择与MySQL的查询效率
教你精确编写高质量高性能的MySQL语法

MSSQL 中的 SQL Server数据库技术(79)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 128 ::
收藏到网摘: n/a

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

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

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