欢迎来到天天文库
浏览记录
ID:52431091
大小:398.50 KB
页数:37页
时间:2020-04-06
《SQL-第11章-存储过程.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第11章存储过程的创建和使用11.1存储过程的定义11.2存储过程的优点11.3存储过程的创建11.4重新编译存储过程11.5自动执行存储过程11.6查看、修改和删除存储过程11.7扩展存储过程返回目录211.1存储过程的定义存储过程是一系列预先编辑好的、能实现特定数据操作功能的SQL代码集,它与特定的数据库相关联,存储在SQLServer服务器上。用户可以像使用函数一样重复调用这些存储过程,实现它所定义的操作。存储过程分为三类:系统提供的存储过程、用户定义的存储过程和扩展存储过程。系统存储过程系统存储过程是指安装SQLServer时由系统创建的存储过
2、程。存储在master数据库中,其前缀为sp_。系统存储过程主要用于从系统表中获取信息,也为系统管理员和有权限的用户提供更新系统表的途径。它们中的大部分可以在用户数据库中使用。扩展存储过程扩展存储过程是对动态链接库(DLL)函数的调用。其前缀为xp_。它允许用户使用DLL访问SQLServer,用户可以使用编程语言(诸如C或C++等)创建自己的扩展过程。用户定义的存储过程由用户为完成某一特定功能而编写的存储过程。本章首页311.2存储过程的优点存储过程是一种把重复的任务操作封装起来的一种方法,支持用户提供参数,可以返回、修改值,允许多个用户使用相同的代
3、码,完成相同的数据操作。它提供了一种集中且一致的实现数据完整性逻辑的方法。存储过程用于实现频繁使用的查询、业务规则、被其它过程使用的公共例行程序。存储过程具有以下优点:存储过程提供了处理复杂任务的能力存储过程提供了许多标准SQL语言所没有的高级特性,它通过传递参数和执行逻辑表达式,能够使用十分复杂的SQL语句处理复杂任务。增强代码的重用性和共享性每一个存储过程都是为了实现一个特定的功能而编写的模块,模块可以在系统中重复地调用,也可以被多个有访问权限的用户访问。所以,存储过程可以增强代码的重用性和共享性,加快应用系统的开发速度,减少工作量,提高开发的质量
4、和效率。4减少网络数据流量存储过程是与数据库一起存放在服务器中并在服务器上运行的。应用系统调用存储过程时只有触发执行存储过程的命令和执行结束返回的结果在网络中传输。用户端不需要将数据库中的数据通过网络传输到本地进行计算,再将计算结果通过网络传送到服务器。所以,使用存储过程可以减少网络中数据流量。加快系统运行速度第一次执行后的存储过程会在缓冲区中创建查询树,第二次执行时就不用进行预编译,从而加快了系统运行速度。另外,由于存储过程是在服务器上运行,分担了用户端的数据处理工作,也加快了应用系统的处理速度。加强系统安全性SQLServer可以不授予用户某些表、
5、视图的访问权限,但授予用户执行存储过程的权限,通过存储过程来对这些表或视图进行访问操作。这样,既可以保证用户能够通过存储过程操作数据库中的数据,又可以保证用户不能直接访问与存储过程相关的表,从而保证表中数据的安全性。本章首页511.3存储过程的创建11.3.1使用T-SQL语句创建存储过程11.3.2创建带输入参数的存储过程11.3.3创建带输出参数的存储过程本章首页611.3.1使用T-SQL语句创建存储过程1.创建存储过程的SQL语句语法创建一个存储过程的语法如下:CREATEPROC[EDURE][OWNER.]procedure_name[({
6、@parameterdata_type}[VARYING][=default][OUTPUT])][,...n][WITH{RECOMPILE
7、ENCRYPTION
8、RECOMPILE,ENCRYPTION}]ASsql_statement[...n]只有两个必需的参数必须传递给CREATEPROCEDURE语句:创建存储过程所需的procedure_name和sql_statements。7在以上语句的语法中:●procedure_name:为新创建的存储过程所指定的名字,它必须遵循标准SQLServer命名约定,且必须在同一个数据库中是唯一的。●@
9、parameter:存储过程的输入或输出参数。●default:参数缺省值。●WITHRECOMPILE:重编译选项。●sql_statements:存储过程中实现功能的SQL语句。2.创建步骤一般来说,创建一个存储过程应按照以下步骤进行:①编写SQL语句。②测试SQL语句是否正确,并能实现功能要求。③若得到的结果数据符合预期要求,则按照存储过程的语法,创建该建存储过程。④执行该存储过程,验证其正确性。83.存储过程创建示例【例11-1】创建一存储过程,要求该存储过程返回学生姓名、所学课程名称和任课教师。CREATEPROCEDUREspStuCouT
10、ea_nameASSELECTa.student_name,b.course_name,c.t
此文档下载收益归作者所有