欢迎来到天天文库
浏览记录
ID:56477092
大小:130.00 KB
页数:48页
时间:2020-06-19
《数据库存储过程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、10存储过程1.存储过程的概念2.创建存储过程3.执行存储过程4.存储过程的管理与维护1.存储过程的概念SQLServer应用操作中,存储过程和触发器扮演相当重要的角色,不仅能提高应用效率,确保一致性,更能提高系统执行速度。同时,使用触发器来完成业务规则,达到简化程序设计的目的。1.存储过程的概念存储过程包括系统存储过程和用户存储过程。系统存储过程:Executesp_help表名:查看表的结构。Executesp_helpindex表名:查看表上的索引信息。Executesp_helptext视图名:查看视图的定义信息。1.存储过程的概念存储过
2、程按返回的数据类型,可分为两类:一类类似于SELECT语句,用于查询数据,查询到的数据以结果集的形式给出;另一类存储过程是通过输出参数返回信息,或不返回信息只执行一个动作。存储过程可以嵌套,即一个存储过程的内部可以调用另一个存储过程。1.存储过程的概念(1)基本概念存储过程是一组编译在单个执行计划中的Transact-SQL语句,它将一些固定的操作集中起来交给SQLServer数据库服务器完成,以实现某个任务。存储过程就是预先编译和优化并存储于数据库中的过程。1.存储过程的概念(2)存储过程的优点1)通过本地存储、代码预编译和缓存技术实现高性能的
3、数据操作。2)通过通用编程结构和过程重用实现编程框架。3)通过隔离和加密的方法提高了数据库的安全性。1.存储过程的概念使用存储过程的好处1)允许模块化的程序设计。2)更快的执行速度。3)有效降低网络流量。4)较好地安全机制。1.存储过程的概念(3)存储过程的类型1)系统存储过程系统存储过程(SystemStoredProcedures)主要存储在master数据库中,以sp_开头,用来进行系统的各项设定,获取信息,从而为系统管理员管理SQLServer提供支持。1.存储过程的概念(3)存储过程的类型1)系统存储过程系统存储过程我们以前接触过:Ex
4、ecutesp_help表名:查看表的结构。Executesp_helpindex表名:查看表上的索引信息。Executesp_helptext视图名:查看视图的定义信息。SQLServer提供了很多系统存储过程,他们用于系统管理、用户登录管理、权限设置、数据库对象管理、数据复制等操作。1.存储过程的概念(3)存储过程的类型2)用户自定义的存储过程用户定义的存储过程可分为本地存储过程(LocalStoredProcedures)、远程存储过程(RemoteStoredProcedures)、临时存储过程(TemporaryStoredProced
5、ures)、扩展存储过程(ExtendedStoredProcedures)等。在这里我们只讨论本地存储过程。1.存储过程的概念(3)存储过程的类型2)用户自定义的存储过程由用户在当前工作的数据库中创建的存储过程,称作本地存储过程。事实上一般所说的存储过程指的就是本地存储过程。2.创建存储过程创建用户自定义存储过程有两种方法:可以使用T-SQL语言的CREATEPROCEDURE语句创建存储过程,也可以使用对象资源管理器向导创建存储过程。2.创建存储过程创建和使用存储过程都必须遵循如下的规则:1)创建存储过程的权限默认为属于数据库所有者,该所有者
6、可以把次权限授予其他用户。2)存储过程是数据库对象,其名称必须遵守标识符规则。名称标识符的长度最大为128位,且数据库中必须惟一。3)只能在当前数据库中创建存储过程。4)每个存储过程最多可以使用1024个参数。5)存储过程最大支持32层嵌套。2.创建存储过程(1)创建不带参数的存储过程创建存储过程的基本语法如下:CREATEPROCEDURE存储过程名[WITHENCRYPTION]—对存储过程加密[WITHRECOMPILE]—对存储过程重新编译ASSQL语句2.创建存储过程(1)创建不带参数的存储过程执行存储过程的基本语法如下:EXEC[UT
7、E]存储过程名如果该存储过程是批处理中第一条语句,则EXEC可以省略。简单存储过程类似于将一组SQL语句起个名字,然后就可以在需要时反复调用。复杂一些的则要有输入和输出参数。2.创建存储过程【实例】在学生成绩管理数据库中,创建一个名为“grade_pro”的存储过程,用于查询不及格学生的成绩信息(包括学号,姓名,课程名称,成绩)。USE学生成绩管理系统GOcreateproceduregrade_proasselect学生表.学号,姓名,课程名,分数from学生表,课程表,成绩表where学生表.学号=成绩表.学号and课程表.课程号=成绩表.课
8、程号and分数<60go2.创建存储过程【实例】针对教师表Teacher,创建一个名为teacher_pro1的存储过程,用于查询所有男
此文档下载收益归作者所有