SQL Server 2005实用教程 教学课件 ppt 蒋文沛2 第9章 触发器

上传人:E**** 文档编号:89398126 上传时间:2019-05-24 格式:PPT 页数:20 大小:289.50KB
返回 下载 相关 举报
SQL Server 2005实用教程 教学课件 ppt 蒋文沛2 第9章  触发器_第1页
第1页 / 共20页
SQL Server 2005实用教程 教学课件 ppt 蒋文沛2 第9章  触发器_第2页
第2页 / 共20页
SQL Server 2005实用教程 教学课件 ppt 蒋文沛2 第9章  触发器_第3页
第3页 / 共20页
SQL Server 2005实用教程 教学课件 ppt 蒋文沛2 第9章  触发器_第4页
第4页 / 共20页
SQL Server 2005实用教程 教学课件 ppt 蒋文沛2 第9章  触发器_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《SQL Server 2005实用教程 教学课件 ppt 蒋文沛2 第9章 触发器》由会员分享,可在线阅读,更多相关《SQL Server 2005实用教程 教学课件 ppt 蒋文沛2 第9章 触发器(20页珍藏版)》请在金锄头文库上搜索。

1、第9章,触发器,学习目标,1、了解触发器与一般存储过程的区别 2、理解触发器的概念以及分类 3、掌握创建触发器的两种方法以及触发器的使用、修改和删除,触发器,触发器是一种特殊的存储过程,在语言事件发生时,所设置的触发器就会自动被执行,以进行维护数据完整性,或其他一些特殊的任务。 与上一章介绍的一般意义上的存储过程不同,触发器可以说是当发生DML或DDL语言事件时自动执行的存储过程。不能直接被调用,也不能传递或接受参数。,DML触发器,DML触发器是一种与表紧密关联的特殊的存储过程,当数据库中发生数据操作语言(DML)事件时将调用DML触发器。,(1)DML触发器 在建立DML触发器时,要指定触

2、发操作:insert、update或delete。至少要指定一种操作,也可以同时指定多种。在同一个表中可以创建多个after触发器,但在表或视图上,每个insert、update或delete语句最多可以定义一个instead of触发器。 (2)DDL触发器 DDL触发器是响应create、alter、drop、grant、deny、revoke 和 update statistics 等语句而触发的。,触发器的功能,1、DML触发器 DML触发器有助于在表或视图中修改数据时强制业务规则,扩展数据完整性,它具有以下功能: (1)级联修改数据库中相关的表; (2)实现比check约束更为复杂的

3、约束操作; (3)拒绝或回滚违反引用完整性的约束操作; (4)比较表修改前后数据之间的差别,并根据差别采取相应的操作。 2、DDL触发器 DDL触发器用于执行管理任务,并强制影响数据库的业务规则。它具有以下功能: (1)防止对数据库架构进行某些更改; (2)使得数据库中发生某种情况以响应数据库架构中的更改; (3)记录数据库架构中的更改或事件。,创建触发器,使用SSMS创建DML触发器 使用Transact-SQL创建DML触发器 使用Transact-SQL创建DDL触发器,create trigger语句的语法格式,create trigger 所有者.触发器名称 on 所有者.表名|视图

4、 with encryption for|after|instead of insert ,update , delete not for replication as if update(列名) and | or update(列名) n sql语句 n,DML触发器创建的表,insert sell values (7,2,2005-1-3,1303),update sell set 数量=22 where 销售编号=5,22,insert t_score (S_number,C_number, Score) values (040102,2,73),Update dbScore表 Upda

5、te netScore表 可以吗?,scoreView,Update scoreView视图 可以吗?,Update dbScore表,Update netScore表,在 inserted表中判断c_number,c_number=2,c_number=12,【例9.2】 创建一个AFTER INSERT触发器,当在Sales数据库的employees表中插入一条新员工记录时,如果不是“采购部”、“财务部”、“销售部”或“库存部”的员工,则撤销该插入操作,并返回出错消息。 【例9.3】 在Sales数据库的employees表和Sell表之间具有逻辑上的主外键关系,要求当删除或更新单个员工记

6、录的时候,要激发触发器tri_Delete,在Sell表中也删除或更新相对应的记录行。,创建DDL触发器的语法格式如下,create trigger 触发器名称 on all server | database with encryption | execute as clause ,.n for | after 事件名称 | 事件分组名称 ,.n as sql语句 ; .n | external name assembly_name.class_name.method_name ; ,数据库作用域的事件如下所述:,【例9.4】在Sales数据库中,创建一个DDL触发器,以防止视图的删除。 【

7、例9.5】创建一个DDL触发器,以保护当前服务器中的所有数据库不能被删除。,create trigger 所有者.触发器名称 on 所有者.表名|视图 with encryption for|after|instead ofinsert,update,delete not for replication as if update(列名)and|or update(列名)n sql语句n,修改触发器,使用SSMS查看和修改DML触发器 使用Transact-SQL查看和修改DML触发器 查看DML触发器信息 EXEC sp_helptrigger 表名|视图名 ,触发器操作类型 查看触发器的定义

8、文本 EXEC sp_helptext 触发器名称 修改DML触发器,alter trigger 所有者.触发器名称 on 所有者.表名|视图 with encryption for|after|insteadofinsert,update,delete not for replication as if update(列名)and|or update(列名)n sql语句n,禁用或启用DML触发器,通过SSMS禁用或启用触发器 使用T-SQL语句禁用或启用DML触发器,alter table 触发器表名称 enable | disable trigger all|触发器名称,n,修改DDL触发器,alter trigger 触发器名称 on all server | database with encryption | execute as clause ,.n for | after 事件名称 | 事件分组名称 ,.n as sql语句 ; .n | external name assembly_name.class_name.method_name ; ,删除触发器,通过SSMS删除触发器 使用Transact-SQL删除触发器,drop trigger 触发器名称,n,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号