收藏 分享(赏)

SQL数据库触发器实例讲解.doc

上传人:myk79025 文档编号:7651961 上传时间:2019-05-23 格式:DOC 页数:2 大小:13.50KB
下载 相关 举报
SQL数据库触发器实例讲解.doc_第1页
第1页 / 共2页
SQL数据库触发器实例讲解.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、SQL 数据库触发器实例讲解定义: 何为触发器?在 sql server 里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于 insert , update , delete 事件。(sql server 2000 定义了新的触发器,这里不提) 我为什么要使用触发器?比如,这么两个表: 用到的功能有:(1).如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);(2).如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录,等等。 这时候可以用到触发器。对于 1,创

2、建一个 update 触发器: create trigger trustudent on student -在 student 表中创建触发器 for update -为什么事件触发as -事件触发后所要做的事情if update studentid) begin update borrowrecord set studentid=i.studentid from borrowrecord br,deleted d ,inserted i - deleted 和 inserted 临时表where br.studentid=d.studentid end 理解触发器里面的两个临时的表:dele

3、ted , inserted 。注意 deleted 与 inserted 分别表示触发事件的表“旧的一条记录” 和“新的一条记录”。 一个数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别是: 虚拟表 inserted 虚拟表 deleted 在表记录新增时存放新增的记录 不存储记录 修改时存放用来更新的新记录 存放更新前的记录 删除时不存储记录 存放被删除的记录 一个 update 的过程可以看作为:生成新的记录到 inserted 表,复制旧的记录到 deleted 表,然后删除 student 记录并写入新纪录。 对于 2,创建一个 delete 触发器 create trig

4、ger trdstudent on student for deleteas delete borrowrecord from borrowrecord br , delted d where br.studentid=d.studentid 从这两个例子我们可以看到了触发器的关键:a.2 个临时的表;b.触发机制。 这里我们只讲解最简单的触发器。复杂的容后说明。 事实上,我不鼓励使用触发器。触发器的初始设计思想,已经被“级联” 所替代。下面是另一个触发器名为“UpdateUser“的例子,当表 member 中的“在线否“ 字段被更新时,将触发更新 UPDATE 事件,程序将更新本条记录的“最后进入网站日期“ 的内容 :CREATE TRIGGER UpdateUser ON dbo.member FOR UPDATEAS if (Update(在线否)BeginUpdate member set 最后进入网站日期=GETDATE() from member m,deleted d,inserted i where m.id=d.id and m.在线否 =“在线“End

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报