第16章 触发器

第16章 触发器

ID:43737979

大小:131.50 KB

页数:22页

时间:2019-10-13

第16章  触发器_第1页
第16章  触发器_第2页
第16章  触发器_第3页
第16章  触发器_第4页
第16章  触发器_第5页
资源描述:

《第16章 触发器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第16章触发器前面在介绍数据完整性时,提到SQLServer2008提供了约束、默认值,以及触发器3类对象,用于保证数据的完整性,那时笔者只介绍了约束和默认值,本章主要介绍触发器(Trigger)。其实,触发器就是一类特殊的存储过程。触发器在创建后,一般是在数据库事件的驱动下自动执行的,即当SQLServer中某一个事件发生时,SQLServer将自动执行其相关联的触发器。16.1触发器概述前面介绍的存储过程都是需要手工执行的,即在SQL语句中,用EXECUTE语句执行相应的存储过程;而触发器这类存储过程却由SQLServer自动执行。SQLServer之所

2、以能够自动执行触发器,是因为触发器在创建时,与特定的SQLServer事件相关联。16.2登录触发器登录触发器关联的事件是事件组SecurityAudit的事件AuditLogin,即LOGIN事件。如果用户遗忘了事件或事件组的概念,可以参考前面介绍SQLServerProfiler跟踪的内容。登录触发器是一种AFTER触发器,不过,登录触发器不存在于特定的架构之下。16.2.1登录触发器的执行时机和作用登录触发器的执行时机是用户登录到SQLServer,具体的是在登录过程的身份验证结束之后至建立会话之前。显然,如果身份验证失败,将不激发登录触发器,所以触发

3、器不能检测到用户对于登录的尝试,以及失败的次数。不过,用户可以通过SQLServer的日志了解到这些信息。16.2.2SQL登录触发器所谓SQL登录触发器,是指用普通的SQL语句编写的登录触发器,主要是区别使用CLR编写的登录触发器。如果想要在登录触发器中使用登录事件的信息,可以参看后面DDL中介绍的EVENTDATA函数。1.创建SQL登录触发器2.使用登录触发器3.更改登录触发器4.删除登录触发器16.2.3登录触发器的常见错误用户按照上面的SQL语句创建登录触发器,当然不会产生问题,但是,如果用户自己创建登录触发器时,需要慎重。因为创建登录触发器与创建

4、普通的表、视图、存储过程或函数相比,具有一定的风险。16.3DDL触发器在SQLServer2008中,CREATE、ALTER、DROP等语句常被称为数据定义语句,或数据定义语言(DataDefinitionLanguage,DDL)。DDL触发器就是与DDL相关联的一种特殊的存储过程。其实,DDL触发器是关联DLL语句对应的SQLServer事件。这类操作被关联相应的DDL触发器后,再执行这类操作时,SQLServer将会自动执行相关联的DDL触发器。DDL触发器是一种AFTER触发器,不存在于特定的架构之下,而存在于特定数据库中或整个SQLServer

5、实例中。16.3.1DDL触发器的执行时机和作用DLL触发器的执行时机是其关联的操作结束以后至下一个操作开始之前。所以,DDL触发器可以帮助用户管理和控制一些与数据库对象定义有关的操作,如管理和记录数据库对象结构的更改。总地来说,DDL触发器主要用在以下几方面。处理对数据库对象结构的更改。在数据库对象的结构发生更改后,执行处罚期内定义的操作。可以记录数据库对象结构的具体更改,以及相应的SQLServer事件。16.3.2DLL触发器关联的事件组DLL触发器关联的事件组依据其使用范围,分为服务器范围内的事件组和数据库范围内的事件组。可以通过SQL语句,查询当前

6、SQLServer的事件组。16.3.3DLL触发器关联的事件在SQLServer中,与DLL触发器关联的事件都属于预定义的事件组。下面将给出这些事件的详细信息,包括事件的名称、type,以及parenttype。具体的,用户可以使用如下SQL语句查询到与DLL触发器关联的事件。16.3.4EVENTDATA函数:返回事件的XML结构在编写DDL触发器时,可能需要获得服务器或数据库事件的信息。这时,就需要使用EVENTDATA函数,其语法结构如下。返回值=EVENTDATA()16.3.5SQLDDL触发器所谓SQLDDL触发器,是指用普通的SQL语句编写的

7、DDL触发器,主要是区别于使用CLR编写的DDL触发器。1.创建SQLDDL触发器2.使用DDL触发器3.更改DDL触发器4.删除DDL触发器5.查看DDL触发器的信息16.4DML触发器在SQLServer2008中,INSERT、UPDATE、DELETE等语句常被称为数据操纵语句,或数据操纵语言(DataManipulationLanguage,DML)。DML触发器是与DML相关联的一种特殊的存储过程。当DML操作被关联上相应的DML触发器后,再执行这类操作时,SQLServer将会自动执行相关联的DML触发器。显然,DML触发器属于特定的数据库,是

8、对数据库中表或视图操作的限制和拓展。16.4.1DM

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。