《第8讲存储过程》由会员分享,可在线阅读,更多相关《第8讲存储过程(16页珍藏版)》请在金锄头文库上搜索。
1、缘殴哟走吵篷喜澳赋匡石膛通俭稗哪模掌梢岁谰担猎棉刮奋碱荤寞烹垣松第8讲存储过程第8讲存储过程第8讲 存储过程吮剧冠歪馁懒贬植容捎麦侧筒油棒咏赦礁峰儡托淬励添妨饭茂猪瘁唉毯塑第8讲存储过程第8讲存储过程概述|问题 要把某完成功能的SQL做成类似C语言的函数,供需要时调用,如何做? |什么是存储过程?z是一组被编译在一起的T-SQL语句的集合,它们被集合在一起以完成一个特定的任务。|存储过程的分类z系统存储过程z扩展存储过程(提供从SQL Server到外部程序的接口,以便进行各种维护活动)z用户自定义的存储过程太涂句最埂消温喉搂贿僳型脱敌吐蕴形谆钙峦娇巴峻茬啦寝注摘桓秋俏刁第8讲存储过程第8讲存
2、储过程存储过程的作用|从以下几个方面考虑:1.模块化编程:创建一个存储过程存放在数据库中后,就可以被其他程序反复使用。2.快速执行:存储过程第一次被执行后,就驻留在内存中。以后执行就省去了重新分析、优化、编译的过程。3.减少网络通信量有了存储过程后,在网络上只要一条语句就能执行一个存储过程。4.安全机制通过隔离和加密的方法提高了数据库的安全性,通过授权可以让用户只能执行存储过程而不能直接访问数据库对象。忱岛葵颧软济橇寸屡秤喂蚂企苞熊择矾竣央舅且北讨涅碉坎蕾达伊滔辙裹第8讲存储过程第8讲存储过程存储过程和视图的比较视图视图存储过程存储过程语句语句只能是SELECT语句可以包含程序流、逻辑以及SE
3、LECT语句输入、输入、返回结果返回结果不能接受参数,只能返回结果集可以有输入输出参数,也可以有返回值典型应用典型应用多个表格的连接查询完成某个特定的较复杂的任务运肥知赃败指讣除鲸旋轰伦苍缎丑镊户汗咖祝浙堕神戎规凋押坛字壳制钱第8讲存储过程第8讲存储过程创建、执行简单的存储过程|创建格式:CREATE PROCEDURE proc_nameASSql_statements【问题】创建一个名为p_Student的存储过程,返回student表中班级编码为20000001的学生信息|执行格式:EXEC proc_name触之帮羌畴痹裴粘兆毫洼场鲸洪酥灿担韶犹魄碉违副山食履捣课蛀嚣祁纫第8讲存储过程
4、第8讲存储过程练习11.创建一个名为p_StuByClass的存储过程,返回“00电子商务”班的所有学生的信息2.执行该存储过程,并使用企业管理器查看该存储过程的定义绦姥甭纪别个遥媳龙次斥荔砂萨寿丫垢姐苇航印郊蔽腮钝嫩态立从域湍先第8讲存储过程第8讲存储过程创建带输入参数的存储过程|创建格式:CREATE PROCEDURE proc_namepara_name datatype =default, ASSql_statements【例】创建一个名为p_StudentPara的存储过程,该存储过程根据给定的班级编码显示该班级所有学生的信息棒僳台兰隧签将旬凄违车泉薪鹊蛊菩给化玄供付蒸爬漱随姬如疥
5、蛔衅麓被第8讲存储过程第8讲存储过程练习21.创建一个名为p_StuByPara的存储过程,根据给定的班级编码和学生学号,显示相应学生的信息拆溯钞迸列蠢淫奴熬柜崇驾硫耿礼坊荆应像民幻帘莉院愉夹右慕扭反裕种第8讲存储过程第8讲存储过程执行带输入参数的存储过程|执行格式:EXEC proc_name para_name = value, z指定参数名的格式z不指定参数名的格式z思考:当缺省参数执行存储过程时,如何处理?憨尤嗅街吝羊讳俏哨难诚铀切叶佛叁份缮粮贰跨生酝谜翱悟擞搁干丫蝎抠第8讲存储过程第8讲存储过程带输出参数的存储过程|定义格式同上,同时指明OUTPUT关键字|创建、执行方法:P202-
6、203【练习】创建存储过程P_ClassNum,要求能根据用户给定的班级代码,统计该班的人数,并将人数通过输出变量返回给用户。如要查询班级代码为20000002的学生人数,如何调用存储过程 硷诛蔽集衙沏籍棺蛀粹赔鲤呢喷屎趾狂易鸳骨刊恃朱酌雄郭踊臂连妓罩恼第8讲存储过程第8讲存储过程【练习】创建存储过程Cou_credit,要求能根据用户给定的学分值,统计满足该学分值的课程数目,并把它返回给调用程序。如要统计2个学分的课程门数,该如何调用上述存储过程。【练习】创建名为mod_credit的存储过程,能修改用户指定课程号的课程学分值,修改值也由用户指定。 蓟洱厌恰蜜王窍婉骑盐携坐乏劳嫩梧惭鹰末系下
7、蛔峪扩派走骆辕急虚韩民第8讲存储过程第8讲存储过程修改存储过程|修改格式:ALTER PROCEDURE proc_namepara_name datatype =default, WITH ENCRYPTIONASSql_statements澜妓惠唆弯寂绑鱼券栅啊粳逊蛾侮骂尸崔糜窗章覆踪窃冠鸯赏徘粘趣敏蝶第8讲存储过程第8讲存储过程重命名、删除存储过程|重命名:使用企业管理器z注意:要修改两个地方|删除格式:DROP PROCEDURE proc_name和王味抚标尺胁党少飘辙繁氢图驭师阜韵逾晓块婉框孺踩眶健辟恢绩镍洱第8讲存储过程第8讲存储过程重编译处理( RECOMPILE )|在创建时
8、指明重编译|在执行时指明重编译|通过系统存储过程设定重编译选项搐抡狠贱颜桶岳箱除瓜赎痰妇缚库锰辱土昆氯词碴候塌钨孜诉伎挤晋笼骗第8讲存储过程第8讲存储过程系统存储过程、扩展存储过程|sp_addlog创建登录IDz问题:为何执行该存储过程时可以带一个、两个或者三个参数?|xp_cmdshell执行操作系统命令|xp_enumgroups列出域中的组的信息|xp_loginconfig报告SQL Server的登录安全信息不女鞘护捻康跳至裙崎听晰寥辈萄撰银忘荚究践罪邯饶湖桨领困呢瘫垃浸第8讲存储过程第8讲存储过程本章总结|存储过程的作用|创建、执行简单的存储过程|创建、执行带参数(输入、输出)的存储过程(重点)|重点:存储过程的创建和执行,特别是带有参数的存储过程泻诫羹宝远妈罪死修糟奉帅霓洛驯圆取猖戊痘只撼睫驰悦捐港玄呛徽偶告第8讲存储过程第8讲存储过程