
第9讲 触发器 米
第9讲 触发器

StuNo CouNo Will0rder RandomNum 02000060 018 报名 机LL 02000060 020 报名 02000060 001 报名 MULLX ■ 制 CouMComlme KindCreditTeacheDepartoSchoolTineintiChoose 01 S划Server实骷信自技术3徐人凤01 周二5-6节20 430 2JW技术的妍发矩信息技术2程税01 周二56节10340 03璐信息检素原飞信息技术2李涛01 周贮晚10300 思考:当学生报名选修SQLServer实用 技术课程时,Wil1Num应自动加1,如何 处理?
引 例 思考:当学生报名选修SQLServer实用 技术课程时,WillNum应自动加1,如何 处理?

。在指定的表中数据发生变化时 被调用以响应INSERT、UPDATE 或DELETE事件 触发器的作用 。强制执行业务规则
触 发 器 的 作 用 在指定的表中数据发生变化时 被调用以响应INSERT、UPDATE 或DELETE事件 强制执行业务规则

·【问题】创建一个触发器TeSt1,要 求每当在Student.表中修改数据时, 创 向客户端显示一条“记录已修改!” 的消息 简单的触 。SQL格式: CREATE TRIGGER trigger_name On table [WITH ENCRYPTION] FORJAFTER INSTEAD OF}([INSERT] [UPDATEJ [DELETEJ) AS sql_statement 意在企业管理器中查看触发器信息
创 建 简 单 的 触 发 器 【问题】创建一个触发器Test1,要 求每当在Student表中修改数据时, 向客户端显示一条“记录已修改!” 的消息 SQL格式: CREATE TRIGGER trigger_name On table [WITH ENCRYPTION] {FOR|AFTER| INSTEAD OF} {[INSERT] [UPDATE] [DELETE]} AS sql_statement 在企业管理器中查看触发器信息

·【问题】将上例中触发器中的FOR UPDATE改为INSTEAD OF UPDATE, FOR/AFTER/INSTEAD 查看执行结果有何不同。 0的比较 总结: 使用FOR/AFTER时,执行触发SQL语句 (INSERT/UPDATE/DELETE):在触发 SQL语句成功执行后,再执行触发器 使用INSTEAD OFE时:执行触发器而不 执行触发SQL语句
FOR/AFTER/INSTEAD OF 的 比 较 【问题】将上例中触发器中的FOR UPDATE改为INSTEAD OF UPDATE, 查看执行结果有何不同。 总结: 使用FOR/AFTER时,执行触发SQL语句 (INSERT/UPDATE/DELETE):在触发 SQL语句成功执行后,再执行触发器 使用INSTEAD OF时:执行触发器而不 执行触发SQL语句

1. 剑建一个触发器,要求每当在 StuCou:表中插入数据时,向客户 端显示一条“记录已添加!”的 消息。 练 2. 创建一个触发器,要求每当用户 插入student.表的记录时,自动显 示表中所有内容
练 习 1 1. 创建一个触发器,要求每当在 StuCou表中插入数据时,向客户 端显示一条“记录已添加!”的 消息。 2. 创建一个触发器,要求每当用户 插入student表的记录时,自动显 示表中所有内容

表IN 。系统为每个触发器都自动创建 了INSERTED表和DELETED表 ·INSERTED表用于存放插入操作 时的行;DELETED表用于存放删 除操作时的行 。这两个表的结构和被触发器作 著D 用的表的结构相同 。用户不能对这两个表进行修改, 但可以读取
INSERTED 表 和DELETED 表 系统为每个触发器都自动创建 了INSERTED表和DELETED表 INSERTED表用于存放插入操作 时的行;DELETED表用于存放删 除操作时的行 这两个表的结构和被触发器作 用的表的结构相同 用户不能对这两个表进行修改, 但可以读取

1.创建一个触发器,要求每当 用户插入student表的记录后, 自动显示Student表中插入的 记录 练习2
练 习 2 1. 创建一个触发器,要求每当 用户插入student表的记录后, 自动显示Student表中插入的 记录

【问题】创建一个触发器 SetWillNum,要求当插入、更 新、删除StuCou表的选课记录 创建触发器 时,能更新Course表中相应的 报名人数。 就说明:该触发器只适用于每 次新增、删除一条记录的情 况
创 建 触 发 器 【问题】创建一个触发器 SetWillNum,要求当插入、更 新、删除StuCou表的选课记录 时,能更新Course表中相应的 报名人数。 说明:该触发器只适用于每 次新增、删除一条记录的情 况

。思考:若有批量的数据新增、 创建批 插入或删除,应该如何修改 上例中的触发器? 数 。处理多条记录的触发器简单、 易维护,但每次都更新Course 触发器 中每条记录的报名人数,效率 不高
创 建 批 量 数 据 触 发 器 思考:若有批量的数据新增、 插入或删除,应该如何修改 上例中的触发器? 处理多条记录的触发器简单、 易维护,但每次都更新Course 中每条记录的报名人数,效率 不高