1 / 35
文档名称:

十二章触发器研究报告.ppt

格式:ppt   大小:1,368KB   页数:35页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

十二章触发器研究报告.ppt

上传人:nnyoung 2019/11/14 文件大小:1.34 MB

下载得到文件列表

十二章触发器研究报告.ppt

相关文档

文档介绍

文档介绍:第十二章 触发器*本章主题描述什么是触发器说明围绕触发器可能带来的一些潜在问题讨论什么时候使用约束,什么时候使用触发器介绍针对触发器的特定的系统表和函数演示通过模板和直接的T-SQL命令创建触发器的操作触发器很多情况下,用户希望把数据插入到表中之后,某个业务规则能够立即执行;或者用户删除数据之后,需要立即把其他表中与该行数据相关联的数据也作相应处理;或者在更新数据记录之后,能够立即实现所有相关记录的必要更新。实现这些类似功能的一个有效方法就是使用触发器。触发器是一种特殊类型的存储过程,易于激活,能够实现复杂的检查和操作。因此,使用触发器有助于更好地维护数据库中数据的完整性。本章介绍触发器的概念,如何创建、修改和删除触发器,以及如何使用各种类型的触发器等。*第一节触发器简介*触发器(Trigger)是一种特殊类型的存储过程,它不同于前面介绍过的一般的存储过程。一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过事件进行触发而被执行的。触发器是一个功能强大的工具,它与表格紧密相连,在表中数据发生变化时自动强制执行。触发器可以用于SQLServer约束、默认值和规则的完整性检查,还可以完成难以用普通约束实现的复杂功能。触发器是一种实施复杂数据完整性的特殊存储过程。在对表或视图执行UPDATE、INSERT或DELETE语句时自动触发执行,以防止对数据进行不正确、未授权或不一致的修改。触发器是与表紧密联系在一起的,是在特定表上进行定义的,这个特定表也被称为触发器表。触发器不可以像调用存储过程一样由用户直接调用执行。触发器与数据表紧密相连,它基于一个表创建,但可以对多个数据表进行操作。通常触发器可以完成以下任务:(1)级联更改数据库中相关的数据表;(2)执行更加复杂的约束操作;(3)拒绝或者回滚不符合完整性的事务;(4)比较表中数据修改前后的差别采取相应的操作。第二节管理触发器*使用T-SQL语句和SQLServerManagermentStudio都可以进行触发器的管理。修改触发器创建触发器(一)创建触发器*-SQL语句创建触发器用于创建触发器的T-SQL语句是CREATETRIGGER,语法格式如下:CREATETRIGGERtrigger_nameONtable_name[WITHENCRYPTION]{FOR|AFTER|INSTEADOF}{[INSERT][,][UPDATE][,][DELETE]} AS sql_statement参数说明如下:trigger_name:指定将要创建的触发器的名称。触发器的名称必须符合标识符命名规则,且触发器的名称必须在数据库中唯一;table_name:指定与所创建的触发器关联的数据表;WITHENCRYPTION:加密触发器的文本;FOR|AFTER|INSTEADOF:如果指定FOR或者AFTER关键字,则创建AFTER类型触发器;如果指定INSTEADOF关键字,表示创建INSTEADOF触发器。[INSERT][,][UPDATE][,][DELETE]:指定所创建的触发器由什么事件被触发,至少要指定一个选项。INSTEADOF触发器中每一种操作只能存在一个。创建步骤: 一般来说,使用T-SQL语句创建一个触发器应按照以下步骤进行:(1)编写SQL语句。(2)测试SQL语句是否正确,并能实现功能要求。(3)若得到的结果数据符合预期要求,则按照触发器的语法,创建该触发器。(4)执行该触发器,验证其正确性。*创建触发器例12-1:在数据库Student的Courses表中创建一个tr_Cour触发器,有INSERT和UPDATE两个触发操作,并对该触发器进行加密。点击【新建查询】,在查询窗口中输入如下T-SQL语句,。USEStudentIFEXISTS(SELECTnameFROMsysobjects WHEREname='tr_Cour'ANDtype='tr') DROPTRIGGERtr_CourGOCREATETRIGGERtr_CourONCoursesWITHENCRYPTIONAFTERINSERTASPRINT'新添加一门课程'GO*-SQL语句创建触发器*:(1)在对象资源管理器中,连接到SQLServer2005数据库引擎 实例,再展开该实例;(2)展开【数据库】、【Student】、【表】;(3)选中将要创建触发器的表,右键单击【触发器】,再单击【新建触发器】();