SQLServer触发器应用探析.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQLServer触发器应用探析.doc

SQLServer触发器应用探析   摘要:该文介绍了触发器类型、特点以及触发器产生的两个临时表,并着重对触发器提高数据完整性的应用及其注意事项进行了阐述,以期对数据库设计者在设计数据库系统时提高数据完整性控制提供有益帮助。   关键词:完整性;触发器;CHECK约束   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)16-0013-02   信息系统开发与运行离不开数据库系统的支持,而对于数据库而言,其存储的数据的正确性至关重要。为确保数据的正确性,各种DBMS都提供了各种方法或机制进行检测、检查。灵活、合理地应用触发器对提高信息系统的数据正确性有很好的帮助。   1 SQL Server触发器   SQL Server触发器是一类特殊存储过程,其由用户定义在数据表上并被事件驱动的由DBMS调用执行的。触发器不能被用户直接调用执行,也不能接收参数。在数据表上或在数据库对象上定义了相应的触发器后,当在数据表中DELETE、INSERT、UPDATE操作或在CREATE、DROP、ALTER数据库对象时将激发并自动执行相应的触发器,使得相应的操作必须满足由触发器所定义的约束规则才能得到成功执行。引起触发器被执行的相应操作和触发器被统一当作一次事务处理。当事务未能整体成功执行,则DBMS会自动回到该事务执行前的状态。触发器可用于各种数据规则、约束和默认值的完整性检查,也可完成更复杂的数据检测和业务逻辑规则。   1.1 触发器分类   按照触发事件的不同,SQL Server触发器可以分为DDL(Data Definition Language)触发器和DML(Data Manipulation Language)触发器两种。   1)DDL触发器用于处理相应的DDL事件。DDL事件有数据库系统用户登录与退出和CREATE、DROP、ALTER语句等操作。DDL触发器可用于审核与规范数据库中对表结构、视图结构上的操作,还可被用于应用系统管理任务。当数据库结构或表结构发生变化时激发触发器,触发器能记录相应的修改过程,并能禁止用户删除指定表、限制用户对数据库修改等操作。   2)DML触发器用于响应用户DML操作事件。DML操作事件是指针对表或视图的INSERT、DELETE和UPDATE操作语句。该类触发器在DML编辑数据时触发执行,在处理表或视图中数据时DML触发器检查操作是否满足相应业务规则,使得数据完整性进一步扩展。   根据触发器是在触发操作语句前还是后执行的不同,触发器又分为INSTEAD OF触发器和AFTER(FOR)触发器两种。   1)INSTEAD OF触发器。顾名思义,该种触发器在数据操作之前执行,代替操作数据的相关语句,实际上是执行触发器中的代码。该类触发器定义在视图或表上。在视图或表上,每个DELETE、UPDATE和INSERT语句只可定义一个INSTEAD OF触发器。   2)AFTER(FOR)触发器。在DML语句操作数据完成以后被触发执行。此种触发器可对被操作的数据进行业务规则检查,如果违反相应的业务规则,则返回该数据操作前的状态。只能在表上而不能在视图上定义AFTER(FOR)触发器,在同一张数据表上可定义多个AFTER(FOR)触发器。   1.2 DBMS生成的两个临时表   在执行DML触发器时,SQL SERVER生成两个只读型临时表:deleted表和inserted表。在触发器执行时这两个表才存在于内存,其表结构与激发DML触发器的视图或基表类似。   1)deleted表   deleted表仅存放进行本次UPDATE和DELETE语句操作的基表的旧数据行。执行UPDATE或DELETE语句时,该数据行从基表中移动到deleted表并从基表中删除。   2)inserted表   inserted表仅存放进行本次UPDATE和INSERT语句操作的新数据行。执行UPDATE语句或INSERT语句时,新数据行被插入基表的同时也被复制到inserted表中。   实际上,UPDATE操作可看做由DELETE操作和INSERT操作组合而成的。UPDATE操作时,DBMS将要修改的数据行从基表中删除并移到deleted表中,然后将修改后的新数据行同时插入到inserted表和基表中。   2 SQL Server触发器应用   触发器机制类似Windows系统的消息响应机制,我们可以灵活利用这一点,不仅可以在数据表上实施比CHECK约束、外键约束等更为复杂的检查和操作,可以引用数据库中其他表中的字段,具有更精细和更强大的数据控制能力,还可以利用DDL触发器对数据库应用系统实施各种应用控制,提高数据库应用系

您可能关注的文档

文档评论(0)

guan_son + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档