存储过程与触发器.ppt

存储过程与触发器.ppt

ID:48711651

大小:2.06 MB

页数:59页

时间:2020-01-26

存储过程与触发器.ppt_第1页
存储过程与触发器.ppt_第2页
存储过程与触发器.ppt_第3页
存储过程与触发器.ppt_第4页
存储过程与触发器.ppt_第5页
资源描述:

《存储过程与触发器.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据库设计与应用浙江工业大学计算机学院存储过程触发器自定义函数1存储过程1.1创建存储过程1.2执行存储过程1.3查看和修改存储过程1.4重命名和删除存储过程存储过程的概念SQL提供了一种方法,它可以将一些固定的操作集中起来由数据库服务器来完成,以实现某个任务,这种方法就是存储过程。存储过程的概念存储过程是存放在服务器上的预先定义与编译好的SQL语句的命令集合,是一个独立的数据库对象存储过程在第一次执行时进行语法检查和编译。编译好的版本存储在过程高速缓存中用于后续调用,执行速度快存储过程可以由应用程序多次激活,提高重复任务的执行性能存储过程可以接受输入参数和返回值SQLServer分为两

2、类:系统提供的存储过程和用户自定义的存储过程。创建过程创建过程语法检查SQL存入sysobjects和syscomments表执行过程执行过程从syscomments表读取存储过程优化编译N在内存中?执行Y存储过程的优点(1)存储过程允许标准组件式编程,在服务器端运行,执行速度快。(2)存储过程执行一次后,其执行规划就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。(3)确保数据库的安全。使用存储过程可以完成所有数据库操作,并可通过编程方式控制上述操作对数据库信息访问的权限。(4)自动完成需要预先执行的任务。存储过程可以在系统启动

3、时自动执行,而不必在系统启动后再进行手工操作,大大方便了用户的使用,可以自动完成一些需要预先执行的任务。1.1创建存储过程在SQLServer中,可以使用三种方法创建存储过程:①使用创建存储过程向导创建存储过程。②利用SQLServer企业管理器创建存储过程。③使用Transact-SQL语句中的CREATEPROCEDURE命令创建存储过程。创建存储过程时,需要确定存储过程的三个组成部分:①所有的输入参数以及传给调用者的输出参数。②被执行的针对数据库的操作语句,包括调用其它存储过程的语句。③返回给调用者的状态值,以指明调用是成功还是失败。用户存储过程的定义中不能使用下列对象创建语句:C

4、REATEVIEWCREATEDEFAULTCREATERULECREATEPROCEDURECREATETRIGGER使用Transact-SQL语句中的CREATEPROCEDURE命令创建存储过程创建存储过程前,应该考虑下列几个事项:①不能将CREATEPROCEDURE语句与其它SQL语句组合到单个批处理中。②创建存储过程的权限默认属于数据库所有者,该所有者可将此权限授予其他用户。③存储过程是数据库对象,其名称必须遵守标识符规则。④只能在当前数据库中创建存储过程。使用CREATEPROCEDURE创建存储过程的语法形式如下:CREATEPROC[EDURE][owner.]pro

5、cedure_name[{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE

6、ENCRYPTION

7、RECOMPILE,ENCRYPTION}]ASsql_statement[...n]各参数意义如下:@parameter:过程中的参数。在CREATEPROCEDURE语句中可以声明一个或多个参数。data_type:用于指定参数的数据类型。VARYING:用于指定作为输出OUTPUT参数支持的结果集。Default:用于指定参数的默认值。OUTPUT:表明该参数是一个返回参数。RECOMPILE:

8、表明SQLServer不会保存该存储过程的执行计划,在执行时重新编译。ENCRYPTION:表示SQLServer将加密包含CREATEPROCEDURE语句的存储过程文本。AS:用于指定该存储过程要执行的操作。sql_statement:是存储过程中要包含的任意数目和类型的Transact-SQL语句。[例1]通过SQL命令定义一个存储过程,查询XSCJ数据库中每个同学各门功课的成绩,然后调用该存储过程。步骤如下:--定义存储过程USEXSCJGoCREATEPROCEDUREstudent_gradeASSELECTXS.学号,XS.姓名,KC.课程名,XS_KC.成绩FROMXS,

9、XS_KC,KCWHEREXS.学号=XS_KC.学号ANDXS_KC.课程号=KC.课程号Go--调用存储过程EXECstudent_gradeGO对于存储过程要注意下列几点:(1)用户定义的存储过程只能在当前数据库中创建(临时过程除外,临时过程总是在tempdb中创建)。(2)成功执行CREATEPROCEDURE语句后,过程名称存储在sysobjects系统表中,而CREATEPROCEDURE语句的文本存储在syscomme

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。