收藏 分享(赏)

云南大学软件学院数据库实验5:存储过程和触发器.doc

上传人:hyngb9260 文档编号:7718455 上传时间:2019-05-24 格式:DOC 页数:6 大小:161.50KB
下载 相关 举报
云南大学软件学院数据库实验5:存储过程和触发器.doc_第1页
第1页 / 共6页
云南大学软件学院数据库实验5:存储过程和触发器.doc_第2页
第2页 / 共6页
云南大学软件学院数据库实验5:存储过程和触发器.doc_第3页
第3页 / 共6页
云南大学软件学院数据库实验5:存储过程和触发器.doc_第4页
第4页 / 共6页
云南大学软件学院数据库实验5:存储过程和触发器.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、1实验 5 存储过程和触发器一、实验目的1 理解存储过程的概念、了解存储过程的类型2 掌握创建存储过程的方法3 掌握执行存储过程的方法4 理解触发器的功能及工作原理。5 掌握创建、更改、删除触发器的方法。二、实验内容1、使用不带参数的存储过程(1)创建一个存储过程,查询 person 表中所有不重复的职称。(使用以前的数据库的一切数据)语句:Create proc proc_prof As Select distinct prof from person;(return)结果:(2)执行存储过程语句:exec proc_prof结果:22、带输入参数的存储过程(1)创建一个存储过程,按照姓名查

2、询 person 表中的员工信息。语句:Create proc proc_personpname varchar(10)AsSelect *from person where pname=pnamereturn结果: (2)执行存储过程,查询名为黎明的员工数据语句:Exec proc_person黎明结果: 3、带输入/输出参数的存储过程(1)创建一个存储过程,使其能够根据员工姓名,查询员工工资。 (考虑到员工不存在时给出提示信息)Create proc proc_psalarypname varchar(10)AsIf EXISTS(Select pname from personWhere

3、 person.pname=pname)BeginSelect distinct pname,fact from person,salaryWhere person.pname=pnameAnd person.pno=salary.pnoEndelse3Print查无此人信息(2)执行存储过程存在时:语句:exec proc_psalary不存在时:4、使用触发器(1)创建一个触发器 trig_update,返回对 person 进行更新操作后,被更新的记录条数语句:create trigger trig_update on personafter updateasprint Trigger

4、Output + convert(varchar(5),rowcount) + rows were updated.结果:(2)执行触发器语句:use employee.sql goupdate personset deptno=003 where pname=王辉结果:(3)修改触发器 trig_update,除返回被更新的记录条数外,再返回学生的所有基本信息语句:alter trigger trig_update on person4after updateasprint Trigger Output + convert(varchar(5),rowcount) + rows were u

5、pdated.select * from personreturn结果:5、使用触发器的两个特殊表:插入表(inserted)和删除表(deleted ) 。(1)在 person 上创建触发器 ins_del_sample,在插入、删除或更新操作后,分别从 inserted 表和deleted 表中查询员工所有信息。(请同学们在做删除操作时,注意备份)语句:create trigger ins_del_sample on personafter insert,update,deleteasselect * from insertedselect * from deletedreturn结果:

6、操作 1 插入语句:use employee.sql goinsert into person values(000010,周杰伦,男, 1982-4-7,高级 ,001);结果:操作 2 删除语句:use employee.sql godelete from personwherepno=000004结果:5操作 3 更新:语句:use employee.sql goupdate person setdeptno=002 where pname=王琳结果:(2)执行触发器。思考执行插入、删除和更新操作后返回的表有什么区别?答:进行插入操作后,inserted 返回的是增加的行的内容,dele

7、ted 返回的是空内容进行更新操作后,inserted 返回的是更新行的新内容,deleted 返回的是更新行之前的内容进行删除操作后,inserted 返回的是空内容,deleted 返回的是删除的行的内容6、使用系统存储过程查看触发器(与存储过程的使用类似)(1)显示触发器 trig_update 的一般信息语句:exec sp_help trig_update结果:6(2)显示触发器 trig_update 的源代码语句:exec sp_helptext trig_update结果:(3)显示 person 上所有的依赖关系语句:exec sp_depends person结果:(4)显示触发器 trig_update 所引用的对象语句:exec sp_depends trig_update结果:

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

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

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


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

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

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