欢迎来到天天文库
浏览记录
ID:40188815
大小:182.00 KB
页数:54页
时间:2019-07-25
《【数据库应用技术】存储过程与触发器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、系统第九章存储过程与触发器前台后台数据库<调用>包含用户的操作界面。例如:登陆界面、商品入库界面、卖出商品界面等第九章存储过程与触发器前台后台数据库执行select…命令,并将结果返回<传递>商品查询界面根据关键词写出select…语句<返回>第九章存储过程与触发器前台后台数据库自动执行已编写好的命令,将结果返回<调用>商品查询界面根据关键词写出调用语句<返回>第九章存储过程与触发器存储过程综述存储过程的基本操作创建和执行带有参数的存储过程存储过程重新编译系统存储过程和扩展存储过程第九章存储过程与触发器存储过程综述1、存储过程概念
2、存储过程是一种数据库对象,是为了实现某个特定任务,将一组预编译的SQL语句以一个存储单元的形式存储在服务器上,供用户调用。存储过程在第一次执行时进行编译,然后将编译好的代码保存在高速缓存中以便以后调用,这样可以提高代码的执行效率。存储过程同其他编程语言中的过程相似,有如下特点:1)接受输入参数并以输出参数的形式将多个值返回至调用过程或批处理。2)包含执行数据库操作(包括调用其它过程)的编程语句。3)向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因)。第九章存储过程与触发器存储过程综述优点:1、安全机制:只给用户访问存储
3、过程的权限,而不授予用户访问表和视图的权限。2、改良了执行性能:在第一次执行后,会在SQLserver的缓冲区中创建查询树,以后执行无需编译。3、减少网络流量:存储过程存在于服务器上,调用时,只需传递执行存储过程的执行命令和返回结果。4、模块化的程序设计:增强了代码的可重用性,提高了开发效率。第九章存储过程与触发器存储过程综述2、存储过程类型系统存储过程:系统存储过程存储在master数据库中,并以sp_为前缀,主要用来从系统表中获取信息,为系统管理员管理SQLServer提供帮助,为用户查看数据库对象提供方便。本地存储过程:本地
4、存储过程是用户根据需要,在自己的普通数据库中创建的存储过程。临时存储过程:临时存储过程通常分为局部临时存储过程和全局临时存储过程。创建局部临时存储过程时,要以“#”作为过程名称的第一个字符。创建全局临时存储过程时,要以“##”作为过程名称的前两个字符。远程存储过程:远程存储过程是SQLServer2000的一个传统功能,是指非本地服务器上的存储过程。扩展存储过程:扩展存储过程以xp_为前缀,它是关系数据库引擎的开放式数据服务层的一部分,其可以使用户在动态链接库(DLL)文件所包含的函数中实现逻辑,从而扩展了Transact-SQL
5、的功能,并且可以象调用Transact-SQL过程那样从Transact-SQL语句调用这些函数。第九章存储过程与触发器存储过程的基本操作---创建创建存储过程时,需要注意下列事项:1、只能在当前数据库中创建存储过程。2、数据库的所有者可以创建存储过程,也可以授权其他用户创建存储过程。3、存储过程是数据库对象,其名称必须遵守标识符命名规则。4、不能将CREATEPROCEDURE语句与其它SQL语句组合到单个批处理中。5、创建存储过程时,应指定所有输入参数和向调用过程或批处理返回的输出参数、执行数据库操作的编程语句和返回至调用过程
6、或批处理以表明成功或失败的状态值。第九章存储过程与触发器存储过程的基本操作---创建使用SQL语句创建不带参数的存储过程语法格式如下:CREATEPROC[EDURE]procedure_name[WITH {RECOMPILE
7、ENCRYPTION}]ASsql_statement[...n]procedure_name:新存储过程的名称。过程名必须符合标识符规则,且对于数据库及其所有者必须唯一。RECOMPILE:SQL不会缓存该过程的计划,该过程将在运行时重新编译。ENCRYPTION:SQLServer加密使用E
8、NCRYPTION可防止将过程作为SQLServer复制的一部分发布。第九章存储过程与触发器存储过程的基本操作---创建例、在STUDENT数据库中,创建一个查询存储过程ST_PROC_BJ,该存储过程将返回计算机系的班级名称。其程序清单如下:USESTUDENTGOCREATEPROCDBO.ST_PROC_BJASSELECT班级名称FROM班级,系部WHERE系部.系部代码=班级.系部代码and系部.系部名称='计算机系'GO第九章存储过程与触发器存储过程的基本操作---执行执行存储过程对存储在服务器上的存储过程,可以使用E
9、XECUTE命令或其名称执行它,其语法格式如下:[EXEC[UTE]]procedure_name[number]}如果存储过程是批处理中的第一条语句,EXECUTE命令可以省略,可以使用存储过程的名字执行该存储过程。例:在查询分析器中执行存储过程
此文档下载收益归作者所有