欢迎来到天天文库
浏览记录
ID:57014740
大小:295.50 KB
页数:39页
时间:2020-07-26
《存储过程和触发器课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十章存储过程和触发器10.1存储过程10.2触发器第十章存储过程和触发器本章以本书的“图书销售系统”为例,主要介绍了如何在SQLServer2000数据库中建立、修改存储过程和触发器。10.1存储过程10.1.1存储过程简介存储过程是一组预先编译好的SQL代码。它是SQLSever上的一个非常有用的特性,是一个独立的数据库对象,可以通过调用命令(EXECUTE)执行存储过程,而不必发送大量Transact-SQL代码,因此大大减少了网络流量,或用户的应用程序调用。存储过程可用于向用户返回数据、向表中插入新数据、修改、执行系统和管理任务等。存储过程有如下优点:(1)行速度快存储过程在创建
2、时经过语法检查和性能优化,在第一次被调用后就驻留在内存中,下次执行不再经过编译。当某操作需大量使用或重复执行,存储过程将比Transact-SQL代码要快。(2)模块化的程序设计存储过程在创建后,即存储在数据库中,可被应用程序无数次调用。用户可按不同功能的程序模块,设计不同的存储过程以供使用。(3)减少网络流量存储过程是一组Transact-SQL语句,但其是作为一个独立的单元来使用,在调用时,只需一个执行语句即可实现。(4)安全性可以授权无直接执行存储过程语句权限的用户执行该存储过程。(5)可以将复杂的任务划分为多个简单的商业逻辑(6)存储过程对某些需要周期性处理的任务特别有用。(7)
3、存储过程在客户端和服务器端提供了良好的并发性。在下例情况下,将使用到存储过程。(1)不需要任何客户端信息而在服务器端完成的操作(2)涉及到大量行的操作、运算(3)频繁的、周期性的操作(4)那些被多个模块共同执行的操作。10.1.2创建存储过程语法:CREATEPROC[EDURE]procedure_name[;number][{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE
4、ENCRYPTION
5、RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_state
6、ment[...n]参数解释:procedure_name新存储过程的名称。过程名必须符合标识符规则,且对于数据库及其所有者必须唯一。要创建局部临时过程,可以在procedure_name前面加一个编号符(#procedure_name),要创建全局临时过程,可以在procedure_name前面加两个编号符(##procedure_name)。完整的名称(包括#或##)不能超过128个字符。指定过程所有者的名称是可选的。;number是可选的整数,用来对同名的过程分组,以便用一条DROPPROCEDURE语句即可将同组的过程一起除去。例如,名为orders的应用程序使用的过程可以命名为
7、orderproc;1、orderproc;2等。DROPPROCEDUREorderproc语句将除去整个组。如果名称中包含定界标识符,则数字不应包含在标识符中,只应在procedure_name前后使用适当的定界符。@parameter过程中的参数。在CREATEPROCEDURE语句中可以声明一个或多个参数。用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值)。存储过程最多可以有2100个参数。使用@符号作为第一个字符来指定参数名称。参数名称必须符合标识符的规则。每个过程的参数仅用于该过程本身;相同的参数名称可以用在其它过程中。默认情况下,参数只能代替常量,而不能
8、用于代替表名、列名或其它数据库对象的名称。【注意】调用存储过程时,必须给出参数值,参数可为空格,但不能为空(NULL)data_type参数的数据类型。所有数据类型(包括text、ntext和image)均可以用作存储过程的参数。不过,cursor数据类型只能用于OUTPUT参数。如果指定的数据类型为cursor,也必须同时指定VARYING和OUTPUT关键字。【说明】对于可以是cursor数据类型的输出参数,没有最大数目的限制。VARYING指定作为输出参数支持的结果集(由存储过程动态构造,内容可以变化)。仅适用于游标参数。default参数的默认值。如果定义了默认值,不必指定该参数
9、的值即可执行过程。默认值必须是常量或NULL。如果过程将对该参数使用LIKE关键字,那么默认值中可以包含通配符(%、_、[]和[^])。OUTPUT表明参数是返回参数。该选项的值可以返回给EXEC[UTE]。使用OUTPUT参数可将信息返回给调用过程。Text、ntext和image参数可用作OUTPUT参数。使用OUTPUT关键字的输出参数可以是游标占位符。n表示最多可以指定2100个参数的占位符。{RECOMPILE
10、ENCRY
此文档下载收益归作者所有