SQL触发器的工作过程
来源:互联网 发布:淘宝宝贝类目怎么修改 编辑:程序博客网 时间:2024/04/29 20:52
DELETE触发器的工作过程
当触发DELETE触发器后,从受影响的表中删除的行将被放置到一个特殊的deleted表中。deleted表是一个逻辑表,它保留已被删除数据行的一个副本。deleted表还允许引用由初始化DELETE语句产生的日志数据。
使用DELETE触发器时,需要考虑以下的事项和原则:
·当某行被添加到deleted表中时,它就不再存在于数据库表中;因此,deleted表和数据库表没有相同的行。
·创建deleted表时,空间是从内存中分配的。deleted表总是被存储在高速缓存中。
·为DELETE动作定义的触发器并不执行TRUNCATE TABLE语句,原因在于日志不记录TRUNCATE TABLE语句。
UPDATE触发器的工作过程
可将UPDATE语句看成两步操作:即捕获数据前像的DELETE语句,和捕获数据后像的INSERT语句。当在定义有触发器的表上执行UPDATE语句时,原始行(前像)被移入到deleted表,更新行(后像)被移入到inserted表。
触发器检查deleted表和inserted表以及被更新的表,来确定是否更新了多行以及如何执行触发器动作。
可以使用IF?UPDATE语句定义一个监视指定列的数据更新的触发器。这样,就可以让触发器容易的隔离出特定列的活动。当它检测到指定列已经更新时,触发器就会进一步执行适当的动作,例如发出错误信息指出该列不能更新,或者根据新的更新的列值执行一系列的动作语句。
INSTEAD OF触发器的工作过程
可以在表或视图上指定INSTEAD OF触发器。执行这种触发器就能够替代原始的触发动作。INSTEAD OF触发器扩展了视图更新的类型。对于每一种触发动作(INSERT、UPDATE或DELETE),每一个表或视图只能有一个INSTEAD OF触发器。
INSTEAD OF触发器被用于更新那些没有办法通过正常方式更新的视图。例如,通常不能在一个基于连接的视图上进行DELETE操作。然而,可以编写一个INSTEAD?OF?DELETE触发器来实现删除。上述触发器可以访问那些如果视图是一个真正的表时已经被删除的数据行。将被删除的行存储在一个名为deleted的工作表中,就像AFTER触发器一样。相似地,在UPDATE INSTEAD OF触发器或者INSERT INSTEAD OF触发器中,你可以访问inserted表中的新行。
- SQL触发器的工作过程
- INSERT触发器的工作过程
- SQL存储过程、触发器
- sql 触发器应用 对于工作表的监控
- 触发器VS存储过程 之 一个SQL菜鸟眼中的触发器和存储过程
- sql触发器存储过程解析
- SQL存储过程与触发器
- SQL 2005 的存储过程和触发器调试大法
- 在SQL中存储过程与触发器的小区别!
- SQL 2005 的存储过程和触发器调试
- SQL Server 触发器-----(特殊的存储过程)
- MS Sql Server中存储过程与触发器的安全隐患
- SQL 2005 的存储过程和触发器调试大法
- Oracle PL/SQL存储过程,函数,包,触发器的使用
- sql server 存储过程中创建视图 触发器的解决办法
- [SQL]触发器入门介绍——特殊的存储过程
- Oracle PL/SQL存储过程,函数,包,触发器的使用
- sql 里的触发器
- Streaming MPEG-4 with Linux
- (转贴)用C#编写ActiveX控件
- GeoRSS简介
- 结合使用 PHP 和 RSS
- 对话框的过程函数
- SQL触发器的工作过程
- nhibernate
- Web2.0的时代的到来,使得Ajax技术更为流行!!
- web水印
- 纯虚函数能为private吗?
- 如何删除windows服务
- Winpnt.exe疑似病毒清理
- 如何编写Linux设备驱动程序
- DIP依赖倒置原则