欢迎来到天天文库
浏览记录
ID:44990400
大小:136.50 KB
页数:22页
时间:2019-11-06
《SQLSERVER课件-触发器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、触发器课程目标触发器概念和作用创建、删除、修改触发器触发器使用的Inserted和Deleted表触发器的触发类型INSTEADOF触发器触发器概念触发器是在对表进行插入。更新或删除操作时自动执行的存储过程触发器通常用于强制业务规则触发器可以确保数据的完整性和一致性触发器触发示例员工表退休员工表退休触发器的用途比较不同版本的数据读取其他表中的数据在相关表中作级联的修改或删除回滚无效的修改实现比由约束提供更为复杂的限制执行本地和远程存储过程创建触发器创建触发器的注意事项触发器可以关联对表的INSERT、UPDATE和DELETE操作一个触发
2、器只应用于单独一个表WITHENCRYPTION选线可用于对用户隐藏触发器的定义。但是,加密的触发器无法进行解密触发器可以引用视图或临时表,但不能和它们相关联触发器可以包含任意数量的SQL语句默认情况下,只有数据库所有者才具有创建触发器的权限且不能转让。触发器只能在当前数据库中创建,但是,可以引用其他数据库中的对象。Inserted和Deleted表触发器可以访问两个逻辑表Inserted表Deleted表Inserted和Deleted表包含更新前和更新后的数据映像Inserted和Deleted表不包含表中不受更新操作影响的数据触发器
3、的触发类型Insert触发器Updte触发器Delete触发器Insert触发器当试图向表中插入数据时,将执行Insert触发器Insert触发器执行下列操作:向Inserted表中插入一个新行的副本检查Inserted表中的新行,确定是否要阻止该插入操作。如果所插入的行中的值是有效的,则将该行插入到触发器表中。Insert触发器示例Update触发器当试图更新表中的数据时,将执行PDATE触发器UPDATE触发器执行下列操作:将原始数据行移到逻辑Deleted表中将一个新行插入Inserted表中,然后插入触发器表中计算Deleted表
4、和Inserted表中的值以确定是否需要进行干预可以创建Update触发器以验证对单个列或整个表的更新列级UPDATE触发器表级UPDATE触发器示例DELETE触发器当试图从表中删除数据时,将执行DELETE触发器DELETE触发器执行下列操作:从触发器表中删除行。将删除的行插入到Deleted表中。检查Deleted表中的行,以确定是否需要或应如何执行触发器操作。DELETE触发器示例不能在触发器中使用的语句INSTEADOF触发器包含代替原始数据操作语句的代码主要优点是可以使不能更新的视图支持更新另外,可以拒绝批处理中的某系部分同事
5、允许批处理的其它部分成功视图的INSTEADOF触发器示例级联触发器级联触发器用于强制引用的完整性当某个表发生修改时,级联触发器会修改相关表中的数据触发器不能用于执行会影响外键或主键约束的级联更新或删除在检验约束后,才会执行触发器;如果操作不能满足约束,则不会执行触发器嵌套触发器如果一个触发器在执行时会启动另一个触发器,而第二个触发器又接着启动下一个触发器。以此类推,这些触发器称为嵌套触发器。触发器最多可以嵌套32层。要启动触发器嵌套,请以以下方式执行Sp_configure‘nestedtrigger’,1要禁用触发器嵌套,请执行下面的
6、语句:Sp_configure‘nestedtrigger’,0触发器与性能由触发器引起的开销通常较低。大部分时间花费在引用逻辑表以外的其它表上。Deleted和Inserted逻辑表始终位于内存中。
此文档下载收益归作者所有