存储过程的创建和使用.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《存储过程的创建和使用.ppt》由会员分享,可在线阅读,更多相关《存储过程的创建和使用.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、存储过程的创建和使用现在学习的是第1页,共54页本章学习目标了解存储过程的概念了解使用存储过程的优点了解系统存储过程的特点及用途掌握创建存储过程的方法掌握执行存储过程的方法掌握查看和修改存储过程的方法掌握删除存储过程的方法现在学习的是第2页,共54页9.1 概述现在学习的是第3页,共54页9.1.1 存储过程的概念在使用Transact-SQL语言编程的过程中,可以将某些需要多次调用的实现某个特定任务的代码段编写成一个过程,将其保存在数据库中,并由SQL Server服务器通过过程名来调用它们,这些过程就叫做存储过程。存储过程在创建时就被编译和优化,调用一次以后,相关信息就保存在内存中,下次调
2、用时可以直接执行。现在学习的是第4页,共54页9.1.1 存储过程的概念存储过程有以下特点:存储过程中可以包含一条或多条Transact-SQL语句。存储过程可以接受输入参数并可以返回输出值。在一个存储过程中可以调用另一个存储过程。存储过程可以返回执行情况的状态代码给调用它的程序。现在学习的是第5页,共54页9.1.2 存储过程的优点使用存储过程有很多优点,具体如下:实现了模块化编程,一个存储过程可以被多个用户共享和重用。存储过程具有对数据库立即访问的功能。使用存储过程可以加快程序的运行速度。使用存储过程可以减少网络流量。使用存储过程可以提高数据库的安全性。现在学习的是第6页,共54页9.1.
3、3 存储过程的分类在SQL Server中的存储过程分为两类:即系统提供的存储过程和用户自定义的存储过程。系统存储过程:由系统自动创建,系统存储过程出现在每个系统定义数据库和用户定义数据库的sys构架中。在SQL Server 2005中,可 将GRANT、DENY和REVOKE权限应用于系统存储过程。用户自定义存储过程:是指封装了可重用代码的模块或例程,由用户创建,能完成某一特定的功能。可以接受输入参数,返回输出参数。现在学习的是第7页,共54页9.1.3 存储过程的分类在SQL Server 2005中,用户自定义存储过程有两种类型:Transact-SQL存储过程和CLR存储过程。Tra
4、nsact-SQL存 储 过 程:是 指 保 存 的Transact-SQL语句集合。CLR存 储 过 程:是 指 对 Microsoft.NET Framework公共语言运行时(CLR)方法的引用,可以接受和返回用户提供的参数。现在学习的是第8页,共54页9.2 创建存储过程在SQL Server中,可以使用两种方法创建存储过程:当创建存储过程时,需要确定存储过程的三个组成部分:所有的输入参数以及传给调用者的输出参数。被执行的针对数据库的操作语句,包括调用其他存储过程的语句。返回给调用者的状态值,以指明调用是成功还是失败。现在学习的是第9页,共54页9.2.1 使用SQL Server管理
5、控制台创建存储过程在SQL Server管理控制台中,选择指定的服务器和数据库,展开数据库中的“可编程性”文件夹,右击其中的“存储过程”,在弹出的快捷菜单中选择“新建存储过程”选项。现在学习的是第10页,共54页9.2.1 使用SQL Server管理控制台创建存储过程例9-2-1:创建一个名称为“StuInfo”的存储过程,要求完成以下功能:在T_STUDENT表中查询05541班学生的学号、姓名、性别、出生日期和政治面貌五个字段的内容。在创建存储过程的窗口中,单击“查询”菜单,选择“指定模板参数的值”,会弹出“指定模板参数的值”对话框。在“指定模板参数的值”对话框中将“Procedure_
6、Name”参数对应的名称修改为“StuInfo”,单击“确定”按钮,关闭此对话框。在创建存储过程的窗口中将对应的SELECT语句修改为以下程序代码:Select S_NUMBER AS 学号,S_NAME AS 姓名,SEX AS 性别,BIRTHDAY AS 出生日期,POLITY AS 政治面貌FROM T_STUDENTWHERE LEFT(S_NUMBER,5)=05541输入完毕后,单击窗口工具栏上的“执行”按钮执行以上程序段,就会创建一个新的存储过程“StuInfo”。现在学习的是第11页,共54页9.2.2 使用Transact-SQL语句创建存储过程可以使用CREATE PRO
7、CEDURE命令创建存储过程,考虑下列几个事项:CREATE PROCEDURE语句不能与其他SQL语句在单个批处理中组合使用。必须具有数据库的CREATE PROCEDURE权限。只能在当前数据库中创建存储过程。不要创建任何使用sp_作为前缀的存储过程。现在学习的是第12页,共54页9.2.2 使用Transact-SQL语句创建存储过程用CREATE PROCEDURE创建存储过程的语法如下:CREATE PROC|PROCEDURE schema_name.procedure_name parameter type_schema_name.data_type VARYING =defau
8、lt OUT|OUTPUT ,.n WITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION AS BEGIN sql_statement END现在学习的是第13页,共54页9.2.2 使用Transact-SQL语句创建存储过程其中,各参数的意义如下:schema_name:过程所属架构的名称。procedure_name:新存储过程的名称。parameter:过程中的参数。type_schema_name.data_type:参数以及所属架构的数据类型。VARYING:指定作为输出参数支持的结果集。仅适用于cursor参数。现在学习的是第14页,共54
9、页9.2.2 使用Transact-SQL语句创建存储过程default:参数的默认值。OUTPUT:指示参数是输出参数。RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTIONRECOMPILE:表明 SQL Server 不会缓存该过程的计划,该过程将在运行时重新编译。ENCRYPTION:表示 SQL Server 加密 syscomments 表中包含 CREATE PROCEDURE 语句文本的条目。:要包含在过程中的一个或多个Transact-SQL语句。现在学习的是第15页,共54页创建存储过程1、创建普通的存储过程例:在student数据库中,创建一个
10、名称为myproc的存储过程,该存储过程的功能是从数据表student_info中查询所有男同学的信息。USE studentGOCREATE PROCEDURE myproc ASSELECT*FROM student_info WHERE sex=男GO 现在学习的是第16页,共54页2、创建带有参数的存储过程例:在student数据库中,创建一个名称为InsertRecord的存储过程,该存储过程的功能是向数据表stud_info中插入一条记录,新记录的值由参数提供。现在学习的是第17页,共54页USE studentGOCREATE PROCEDURE InsertRecord(sno
11、 char(6),sn char(20),age numeric(5),sex char(2),dept char(10)ASINSERT INTO stud_info VALUES(sno,sn,sex,age,dept)GO 现在学习的是第18页,共54页3、创建具有参数默认值的存储过程例:在student数据库中,创建一个名称为InsertRecordDef的存储过程,该存储过程的功能是向数据表student中插入一条记录,新记录的值由参数提供,如果未提供系别dept的值时,由参数的默认值代替。现在学习的是第19页,共54页USE studentGOCREATE PROCEDURE In
12、sertRecordDef(sno char(6),sn char(20),age numeric(5),sex char(2),dept char(10)=无)ASINSERT INTO stud_info VALUES(sno,sn,sex,age,dept)GO 现在学习的是第20页,共54页4、创建能够返回值的存储过程例:在student数据库中,创建一个名称为Query_Study的存储过程,该存储过程的功能是从数据表stud_info中根据学号查询某一同学的姓名和系别。现在学习的是第21页,共54页USE studentGOCREATE PROCEDURE Query_Study(
13、sno char(6),sn char(20)OUTPUT,dept char(10)OUTPUT)ASSELECT sn=sn,dept=deptFROM stud_infoWHERE sno=snoGO 现在学习的是第22页,共54页例9-2-2:创建一个存储过程StuScoreInfo,完成的功能是在表T_STUDENT、表T_COURSE和表t_SCORE中查询以下字段:班级、学号、姓名、性别、课程名称、考试分数。程序清单如下:-打开STUDENT数据库USE STUDENT-查询是否已存在此存储过程,如果存在,就删除它IF EXISTS(SELECT name FROM sysobj
14、ects WHERE name=StuScoreInfo AND type=P)DROP PROCEDURE StuScoreInfoGO现在学习的是第23页,共54页-创建存储过程CREATE PROCEDURE StuScoreInfo ASSelect 班级=SUBSTRING(T_STUDENT.S_NUMBER,1,LEN(T_STUDENT.S_NUMBER)-2),学号=SUBSTRING(T_STUDENT.S_NUMBER,LEN(T_STUDENT.S_NUMBER)-1,2),S_NAME AS 姓名,SEX AS 性别,T_COURSE.C_NAME AS 课程名称,t
15、_SCORE.SCORE AS 考试分数FROM T_STUDENT,T_COURSE,t_SCOREWHERE T_STUDENT.S_NUMBER=t_SCORE.S_NUMBER AND T_COURSE.C_NUMBER=t_SCORE.C_NUMBERGO现在学习的是第24页,共54页例9-2-2:创建一个带有参数的存储过程Stu_Info,该存储过程根据传入的学生编号,在T_STUDENT中查询此学生的信息。USE STUDENTIF EXISTS(SELECT name FROM sysobjects WHERE name=Stu_Info AND type=P)DROP PRO
16、CEDURE Stu_InfoGO-创建存储过程USE STUDENTGO现在学习的是第25页,共54页CREATE PROCEDURE Stu_Info S_NUMBER varchar(10)AS Select 班级=SUBSTRING(T_STUDENT.S_NUMBER,1,LEN(T_STUDENT.S_NUMBER)-2),学号=SUBSTRING(T_STUDENT.S_NUMBER,LEN(T_STUDENT.S_NUMBER)-1,2),S_NAME AS 姓名,SEX AS 性别,BIRTHDAY AS 出生日期,POLITY AS 政治面貌FROM T_STUDENTWH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储 过程 创建 使用
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内