- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
12.存储过程12.存储过程12.存储过程*12.存储过程存储过程1存储过程综述2创建、执行、修改、删除简单存储过程3创建和执行含参数的存储过程4存储过程的重新编译5利用模板创建存储过程12.存储过程导言:存储过程例:查看某系(计算机系、商务技术系、机电系、人文系)的班级名称。createviewxb_bjmcasselect班级名称from班级where系部代码=(select系部代码from系部where系部名称=‘计算机系’)12.存储过程1、存储过程概念存储过程是一种数据库对象,是为了实现某个特定任务,将一组预编译的SQL语句以一个存储单元的形式存储在服务器上,供用户调用。存储过程在第一次执行时进行编译,然后将编译好的代码保存在高速缓存中以便以后调用,这样可以提高代码的执行效率。1存储过程综述12.存储过程2、存储过程特点存储过程同其它编程语言中的过程相似,有如下特点:接收输入参数并以输出参数的形式将多个值返回至调用过程或批处理。包含执行数据库操作(包括调用其它过程)的编程语句。向调用过程或批处理返回状态值,以表明成功或失败以及失败原因。12.存储过程3、存储过程的优点:1、安全机制:只给用户访问存储过程的权限,而不授予用户访问表和视图的权限。2、改良了执行性能:在第一次执行后,会在SQLserver的缓冲区中创建查询树,以后执行无需编译。3、减少网络流量:存储过程存在于服务器上,调用时,只需传递执行存储过程的执行命令和返回结果。4、模块化的程序设计:增强了代码的可重用性,提高了开发效率。12.存储过程4、存储过程类型用户定义的存储过程:用户定义的存储过程是用户根据需要,为完成某一特定功能,在自己的普通数据库中创建的存储过程。系统存储过程:系统存储过程以sp_为前缀,主要用来从系统表中获取信息,为系统管理员管理SQLServer提供帮助,为用户查看数据库对象提供方便。比如用来查看数据库对象信息的系统存储过程sp_help。系统存储过程被系统安装在master数据库中扩展存储过程:扩展存储过程以xp_为前缀,它是关系数据库引擎的开放式数据服务层的一部分,其可以使用户在动态链接库(DLL)文件所包含的函数中实现逻辑功能,从而扩展了T-SQL的功能,并且可以象调用T-SQL过程那样从T-SQL语句调用这些函数。12.存储过程常见的系统存储过程Sp_help显示当前数据库中的相关信息Sp_helpdb显示当前数据库服务器中现有的数据库Sp_helpfile显示与指定数据库相关的物理存储文件Sp_helpserver显示当前可用的数据库服务器Sp_helpuser显示当前数据库服务器中的用户信息Sp_helptext显示文件信息Sp_attach_db加载一个数据库Sp_detach_db卸载一个数据库12.存储过程1.创建存储过程创建存储过程时,需要注意下列事项:??只能在当前数据库中创建存储过程。数据库的所有者可以创建存储过程,也可以授权其他用户创建存储过程。存储过程是数据库对象,其名称必须遵守标识符命名规则。?不能将CREATEPROCEDURE语句与其它SQL语句组合到单个批处理中。创建存储过程时,应指定所有输入参数和向调用过程或批处理返回的输出参数、执行数据库操作的编程语句和返回至调用过程或批处理以表明成功或失败的状态值。2创建、执行、修改、删除简单存储过程12.存储过程使用SQL语句创建不带参数的存储过程语法格式如下:CREATEPROC[EDURE]procedure_name
[WITH
????{RECOMPILE|ENCRYPTION}]
ASsql_statement[...n]procedure_name:新存储过程的名称。过程名必须符合标识符规则,且对于数据库及其所有者必须唯一。RECOMPILE:SQL不会缓存该过程的计划,该过程将在运行时重新编译。ENCRYPTION:SQLServer加密使用ENCRYPTION可防止将过程作为SQLServer复制的一部分发布。12.存储过程例:在医生数据库中,创建一个查询存储过程dbo.ysghxm,要求该存储过程列出儿科系的医生工号和姓名。
文档评论(0)