数据库应用基础第七章存储过程.ppt
《数据库应用基础第七章存储过程.ppt》由会员分享,可在线阅读,更多相关《数据库应用基础第七章存储过程.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库应用基础第七章存储过程 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望2 27.1存储过程概述存储过程概述7.2创建存储过程创建存储过程7.3修改和删除存储过程修改和删除存储过程 本章主要内容本章主要内容3 37.1 7.1 存储过程概述存储过程概述 存储过程存储过程(stored(stored procedure)procedure)是存放在服务器上的是存放在服务器上的预先编译好的预先编译好的SQLSQL语句语句,用于完成用于完成某项任务,它可以接受参数、
2、返某项任务,它可以接受参数、返回状态值和参数值,并且可以嵌回状态值和参数值,并且可以嵌套调用套调用 4 4存储过程类型系统存储过程系统存储过程本地存储过程本地存储过程临时存储过程临时存储过程远程存储过程远程存储过程扩展存储过程扩展存储过程本章主要本章主要内容内容5 5系统存储过程:系统存储过程:存储在存储在mastermaster数据库中,由前缀数据库中,由前缀spsp标识标识作用:作用:从系统表中获取信息,从系统表中获取信息,允许系统管理员在没有直接更允许系统管理员在没有直接更新底层表的许可权下执行更新新底层表的许可权下执行更新数据库中系统表的数据库管理数据库中系统表的数据库管理工作。工作。
3、绝大部分的系统存储过绝大部分的系统存储过程可以在任何数据库中执行程可以在任何数据库中执行 6 6本地存储过程:本地存储过程:这是用户在独立的这是用户在独立的用户数据库中为了完成某一特定功用户数据库中为了完成某一特定功能而编写的存储过程能而编写的存储过程临时存储过程:临时存储过程:它它与临时表类似,与临时表类似,通常又分为通常又分为本地本地和和全局全局临时存储过临时存储过程程两种两种,当,当临时临时存储过程为本地时,存储过程为本地时,其名字以符号其名字以符号#开始,为开始,为全局全局时,时,以符号以符号#开始开始7 7远程存储过程:远程存储过程:远程存储过程在远程存储过程在分布式分布式查询中使用
4、查询中使用扩展存储过程:扩展存储过程:使使SQLSQLServerServer可可动态装载并执行动态装载并执行DLL。这样用。这样用户可使用象户可使用象C这样的编程语言这样的编程语言创建自己的外部例程创建自己的外部例程扩展存储过程由前缀扩展存储过程由前缀xp标识标识8 8存储过程的优点存储过程的优点提供了安全机制提供了安全机制改进了执行性能改进了执行性能减少了网络流量减少了网络流量允许模块化程序设计允许模块化程序设计9 9 存储过程存储过程提供提供的安全的安全机制机制可以让用户通过存储可以让用户通过存储过程操作数据库中的数据,过程操作数据库中的数据,而不让用户直接操作于存而不让用户直接操作于存
5、储过程相关的表,从而保储过程相关的表,从而保证数据库中数据的安全性证数据库中数据的安全性 1010存储过程存储过程在第二次执行时,无需预在第二次执行时,无需预编译,从而改进系统的编译,从而改进系统的执行性能执行性能存储过程存储过程是存放在服务器上的预先是存放在服务器上的预先编译好的编译好的单条或多条单条或多条SQL语句语句并并在在服务器上运行服务器上运行,用户无需在网络上,用户无需在网络上发送上百个发送上百个SQL语句,或是将众多语句,或是将众多数据从服务器下载至客户端后再进数据从服务器下载至客户端后再进行处理,从而行处理,从而大大减少了网络负载大大减少了网络负载1111增强代码的可重用性,提
6、高开增强代码的可重用性,提高开发效率发效率。存储过程可以视为为。存储过程可以视为为完成某特定功能而编写的功能完成某特定功能而编写的功能模块模块,将来可以在其他的存储,将来可以在其他的存储过程中引用该存储过程,从而过程中引用该存储过程,从而实现代码的重用性,加快应用实现代码的重用性,加快应用的开发速度,提高开发的质量的开发速度,提高开发的质量和效率和效率1212存储过程中包含存储过程中包含的输入的输入/出参数出参数7.2创建存储过程创建存储过程7.2.17.2.1创建简单的存储过程创建简单的存储过程CREATE PROCEDURE CREATE PROCEDURE owner.procedure
7、_name;numberowner.procedure_name;numberparameter data_typeparameter data_typeVARYING=defaultOUTPUTVARYING=defaultOUTPUT,nnWITHRECOMPILE|ENCRYPTION|WITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTIONRECOMPILE,ENCRYPTIONFOR REPLICATIONFOR REPLICATIONAS sql_statements AS sql_statements 重重新新编编译译加加密密在存储过在存储过程中
8、需执程中需执行的操作行的操作1313例:在My_DB1上新建my_procedure1存储过程,以返回所有diagrm_id=100和principal=200的信息。USEMy_DB1goCREATEPROCdbo.my_procedure1ASSELECT*FROMdbo.sysdiagrmsWHEREdiagrm_id=100diagrm_id=100 ANDprincipal=200principal=200Go1414创建存储过程的步骤及注意事项创建存储过程的步骤及注意事项不能将CREATEPROCEDURE语句与其它SQL语句组合到单个批处理中创建存储过程是有权限的,其默认权限为d
9、bo,其他用户若要获得创建存储过程的权限,要由dbo授权1515存储过程是存储过程是数据库对象数据库对象,在命,在命名用户自定义的存储过程时应名用户自定义的存储过程时应避免使用避免使用sp前缀,以免和系统前缀,以免和系统存储过程混淆存储过程混淆尽量不要使用临时存储过程,尽量不要使用临时存储过程,以避免以避免tempdb上造成的对系上造成的对系统表资源的争夺,从而影响系统表资源的争夺,从而影响系统的执行性能统的执行性能1616存储过程最大尺寸被存储过程最大尺寸被限制为限制为128MB,存储过,存储过程最多允许嵌套至程最多允许嵌套至32级级1717例:例:编写指令执行编写指令执行my_proced
10、ure1存储过程存储过程USENorthwindEXECmy_procedure1GO1818查看存查看存储过程信息储过程信息sysobjectssyscommentssysdependssp_stored_procedures可以使用如下命令:可以使用如下命令:1919例:编写例:编写SQL指令查看创建存储过指令查看创建存储过程程my_procedure1的相关代码信息的相关代码信息USENorthwindEXECsp_helptextmy_procedure1GO20207.2.2创建和执行含参数存储过程创建和执行含参数存储过程通过使用参数,可以多通过使用参数,可以多次使用同一存储过程并次
11、使用同一存储过程并按指定要求查找数据库按指定要求查找数据库21211.创建创建带带输入参数输入参数的存储过程的存储过程输入参数输入参数是指由调用程序向存储过是指由调用程序向存储过程传递的参数,为了定义接受输入程传递的参数,为了定义接受输入参数的存储过程,需要在参数的存储过程,需要在CREATEPROCEDURE语句中声明一个或语句中声明一个或多个变量作为参数。多个变量作为参数。如:如:parameter_namedatatype=default必须是常量必须是常量或或NULL2222例:例:在在Northwind库上创建存储库上创建存储过程过程my_procedure2的,其中定的,其中定义了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 应用 基础 第七 存储 过程
限制150内