《【教学课件】第11章存储过程.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第11章存储过程.ppt(19页珍藏版)》请在三一办公上搜索。
1、第11章 存储过程,学习目标,理解存储过程的作用,学会根据需要创建、修改、删除存储过程(带输入、输出参数),在实际应用开发时能够灵活运用存储过程以提高开发效率。,内容框架,概述,问题 要把某完成功能的SQL做成类似C语言的函数,供需要时调用,如何做?什么是存储过程?是一组被编译在一起的T-SQL语句的集合,它们被集合在一起以完成一个特定的任务。存储过程的分类系统存储过程扩展存储过程(提供从SQL Server到外部程序的接口,以便进行各种维护活动)用户自定义的存储过程,存储过程的作用,从以下几个方面考虑:模块化编程:创建一个存储过程存放在数据库中后,就可以被其他程序反复使用。快速执行:存储过程
2、第一次被执行后,就驻留在内存中。以后执行就省去了重新分析、优化、编译的过程。减少网络通信量有了存储过程后,在网络上只要一条语句就能执行一个存储过程。安全机制通过隔离和加密的方法提高了数据库的安全性,通过授权可以让用户只能执行存储过程而不能直接访问数据库对象。,存储过程和视图的比较,创建、执行简单的存储过程,创建格式:CREATE PROCEDURE proc_nameASSql_statements【问题】创建一个名为p_Student的存储过程,返回student表中班级编码为20000001的学生信息执行格式:EXEC proc_name,练习1,创建一个名为p_StuByClass的存储
3、过程,返回“00电子商务”班的所有学生的信息执行该存储过程,并使用Management Studio查看该存储过程的定义,创建带输入参数的存储过程,创建格式:CREATE PROCEDURE proc_namepara_name datatype=default,ASSql_statements【例】创建一个名为p_StudentPara的存储过程,该存储过程根据给定的班级编码显示该班级所有学生的信息,练习2,创建一个名为p_StuByPara的存储过程,根据给定的班级编码和学生学号,显示相应学生的信息,执行带输入参数的存储过程,执行格式:EXEC proc_name para_name=va
4、lue,指定参数名的格式不指定参数名的格式思考:当缺省参数执行存储过程时,如何处理?,带输出参数的存储过程,定义格式同上,同时指明OUTPUT关键字创建、执行方法:P202-203【练习】创建存储过程P_ClassNum,要求能根据用户给定的班级代码,统计该班的人数,并将人数通过输出变量返回给用户。如要查询班级代码为20000002的学生人数,如何调用存储过程,【练习】创建存储过程Cou_credit,要求能根据用户给定的学分值,统计满足该学分值的课程数目,并把它返回给调用程序。如要统计2个学分的课程门数,该如何调用上述存储过程。【练习】创建名为mod_credit的存储过程,能修改用户指定课
5、程号的课程学分值,修改值也由用户指定。,修改存储过程,修改格式:ALTER PROCEDURE proc_namepara_name datatype=default,WITH ENCRYPTIONASSql_statements,重命名、删除存储过程,重命名:使用Management Studio注意:要修改两个地方删除格式:DROP PROCEDURE proc_name,重编译处理(RECOMPILE),在创建时指明重编译在执行时指明重编译通过系统存储过程设定重编译选项,系统存储过程、扩展存储过程,sp_addlog创建登录ID问题:为何执行该存储过程时可以带一个、两个或者三个参数?xp_cmdshell执行操作系统命令xp_enumgroups列出域中的组的信息xp_loginconfig报告SQL Server的登录安全信息,本章总结,存储过程的作用创建、执行简单的存储过程创建、执行带参数(输入、输出)的存储过程(重点)重点:存储过程的创建和执行,特别是带有参数的存储过程,课后任务,独自完成241页实训,