第10章 存储过程.ppt

第10章 存储过程.ppt

ID:48771198

大小:135.00 KB

页数:47页

时间:2020-01-23

第10章 存储过程.ppt_第1页
第10章 存储过程.ppt_第2页
第10章 存储过程.ppt_第3页
第10章 存储过程.ppt_第4页
第10章 存储过程.ppt_第5页
资源描述:

《第10章 存储过程.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第10章存储过程概述问题要把某完成功能的SQL做成类似C语言的函数,供需要时调用,如何做?什么是存储过程?是一组被编译在一起的T-SQL语句的集合,它们被集合在一起以完成一个特定的任务。版权所有:中国信息大学信息工程学院计算机系严芬存储过程的分类系统存储过程。扩展存储过程(提供从SQLServer到外部程序的接口,以便进行各种维护活动)。用户自定义的存储过程。版权所有:中国信息大学信息工程学院计算机系严芬系统执行T-SQL语句的步骤T-SQL语句发送到服务器。服务器编译T-SQL语句。优化产生查询执行计划。数据库引擎执行查询计划。执行结果发

2、回客户程序。版权所有:中国信息大学信息工程学院计算机系严芬注意:存储过程是SQL语句和部分流控语句的预编译集合,存储过程被进行了编译和优化。当存储过程第一次执行时,SQLServer为其产生查询计划并将其保留在内存中,这样以后在调用该存储过程时就不必再进行编译,这能在一定程度上改善系统的性能。版权所有:中国信息大学信息工程学院计算机系严芬存储过程的作用从以下几个方面考虑模块化编程创建一个存储过程存放在数据库中后,就可以被其他程序反复使用。快速执行存储过程第一次被执行后,就驻留在内存中。以后执行就省去了重新分析、优化、编译的过程。版权所有:中

3、国信息大学信息工程学院计算机系严芬减少网络通信量有了存储过程后,在网络上只要一条语句就能执行一个存储过程。安全机制通过隔离和加密的方法提高了数据库的安全性,通过授权可以让用户只能执行存储过程而不能直接访问数据库对象。版权所有:中国信息大学信息工程学院计算机系严芬在下例情况下,将使用到存储过程:(1)不需要任何客户端信息而在服务器端完成的操作;(2)涉及到大量行的操作、运算;(3)频繁的、周期性的操作;(4)那些被多个模块共同执行的操作。版权所有:中国信息大学信息工程学院计算机系严芬存储过程和视图的比较视图存储过程语句只能是SELECT语句可

4、以包含程序流、逻辑以及SELECT语句输入、返回结果不能接受参数,只能返回结果集可以有输入输出参数,也可以有返回值典型应用多个表格的连接查询完成某个特定的较复杂的任务版权所有:中国信息大学信息工程学院计算机系严芬创建、执行简单的存储过程创建格式CREATEPROCEDUREproc_name[WITHENCRYPTION][WITHRECOMPILE]ASSql_statements其中:WITHENCRYPTION对存储过程进行加密。WITHRECOMPILE对存储过程重新编译。版权所有:中国信息大学信息工程学院计算机系严芬【问题】创建一

5、个名为p_Student的存储过程,返回student表中班级编码为20000001的学生信息。CREATEPROCEDUREp_StudentASSELECT*FROMStudentWHEREClassNo='20000001'版权所有:中国信息大学信息工程学院计算机系严芬执行格式EXECproc_name【例】使用Transact-SQL语句执行前例中创建的名为p_Student的存储过程。EXECp_Student版权所有:中国信息大学信息工程学院计算机系严芬查看存储过程的属性【例10.3】在企业管理器中查看存储过程p_Student

6、的属性。版权所有:中国信息大学信息工程学院计算机系严芬练习1创建一个名为p_StuByClass的存储过程,返回“00电子商务”班的所有学生的信息。执行该存储过程,并使用企业管理器查看该存储过程的定义。版权所有:中国信息大学信息工程学院计算机系严芬创建带输入参数的存储过程创建格式CREATEPROCEDUREproc_name@para_namedatatype[=default],…[WITHENCRYPTION][WITHRECOMPILE]ASSql_statements版权所有:中国信息大学信息工程学院计算机系严芬各参数的意义如下:

7、@para_name存储过程的参数名,必须以符号@为前缀。datatype参数的数据类型。default参数的默认值,如果执行存储过程时未提供该参数的变量值,则使用default值。版权所有:中国信息大学信息工程学院计算机系严芬【例】创建一个名为p_StudentPara的存储过程,该存储过程根据给定的班级编码显示该班级所有学生的信息。设计思路:例10.1中AS后的语句SELECT*FROMStudentWHEREClassNo=‘20000001’,将固定的班级代码“20000001”用变量代替变为:SELECT*FROMStudentW

8、HEREClassNo=@ClassNo。注意,其中变量名@ClassNo以@开头,@ClassNo变量取代了固定值20000001。版权所有:中国信息大学信息工程学院计算机系严

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。