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

MSSQL
SQL Server 2005数据库升级技巧
VB访问SQL Server数据库技术全揭密
sqlserver数据库中统计email类型的sql语句
SQL Server2005SQLCLR代码安全之权限
牢记!SQL Server数据库开发的二十一条军规
SQL中char和varchar的效率分析
让SQL Server为工作负载高峰提前做好准备
利用同义词简化SQL Server 2005开发
sql server日志文件总结及日志满的处理办法
SQL Server2005 SQLCLR代码之CLR安全
MDF文件在SQL Server数据库中恢复技术
SQL Server补丁安装常见问题详解
解决sqlserver2005中文版与vs2005的WebApplicationProject的冲突问题
SQL2000里的数据类型
数据库设计中的14个技巧
SQL Server快速参考
关于MSSQL数据库日志满的快速解决办法
一个Select出一个表中第N条记录的Sql代码
SQL server 数据库定时自动备份小技巧
SQLServer对文件内容全文检索查询

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


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

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

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

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