如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第8章存储过程和触发器存储过程的查看、修改和删除8.1存储过程概述在SQLServer中,使用存储过程的优点如下:①存储过程在服务器端运行,执行速度快。②存储过程执行一次后,其执行规划就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。③确保数据库的安全。使用存储过程可以完成所有的数据库操作,并可通过编程方式控制上述操作对数据库信息访问的权限。④自动完成需要预先执行的任务。存储过程可以在系统启动时自动执行,而不必在系统启动后再进行手工操作,大大方便了用户的使用,可以自动完成一些需要预先执行的任务。8.1.2存储过程的类型1.系统存储过程2.本地存储过程3.临时存储过程4.远程存储过程5.扩展存储过程8.2存储过程的创建存储过程由CREATEPROCEDURE语句创建,存储过程的定义包括:过程名和参数的说明以及过程体,即包含执行存储过程操作的Transact-SQL语句。要使用存储过程,首先要创建一个存储过程。8.2.1使用CREATEPROCEDURE语句创建2.参数说明number:是可选的整数,用来对同名的过程分组,以便用一条[DROPPROCEDURE]语句即可将同组的过程一起除去。@parameter:过程中的参数。在[CREATEPROCEDURE]语句中可以声明一个或多个参数。用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值)。存储过程最多可以有2100个参数。使用@符号作为第一个字符来指定参数名称。参数名称必须符合标识符的规则。每个过程的参数仅用于该过程本身;相同的参数名称可以用在其他过程中。默认情况下,参数只能代替常量,而不能用于代替表名、列名或其他数据库对象的名称。data_type:参数的数据类型。所有数据类型(包括text、ntext和image)均可以用作存储过程的参数。不过,cursor数据类型只能用于[OUTPUT]语句的参数。如果指定的数据类型为cursor,也必须同时指定[VARYING]和[OUTPUT]关键字。说明:对于可以是cursor数据类型的输出参数,没有最大数目的限制。VARYING:指定作为输出参数支持的结果集(由存储过程动态构造,内容可以变化)。仅适用于游标参数。default:参数的默认值。如果定义了默认值,不必指定该参数的值即可执行过程。默认值必须是常量或[NULL]。如果过程将对该参数使用[LIKE]关键字,那么默认值中可以包含通配符(%、_、[]和^)。OUTPUT:表明参数是返回参数。该选项的值可以返回给[EXEC[UTE]。使用[OUTPUT]参数可将信息返回给调用过程。text、ntext和image类型数据可用作[OUTPUT]参数。使用[OUTPUT]关键字的输出参数可以走游标占位符。n:表示最多可以指定2100个参数的占位符。RECOMPILE|ENCRYPTION|(RECOMPILE,ENCRYPTION):RECOMPILE表明SQLServer不会缓存该过程的计划,该过程将在运行时重新编译。在使用非典型值或临时值而不希望覆盖缓存在内存中的执行计划时,应该使用[RECOMPILE]选项。ENCRYPTION表示SQLServer加密syscomments表中包含CREATEPROCEDURE语句文本的条目。使用ENCRYPTION可防止将过程作为SQLServer复制的一部分发布。说明:在升级过程中,SQLServer利用存储在syscomments中的加密注释来重新创建加密过程。FORREPLICATION:指定不能在订阅服务器上执行为复制创建的存储过程。使用[FORREPLICATION]选项创建的存储过程可用作存储过程筛选,且只能在复制过程中执行。该选项不能和[WITHRECOMPILE]选项一起使用。AS:指定过程要执行的操作。sql_statement:过程中要包含的任意数目和类型的Transact-SQL语句,但有一些限制。ASsql_statement[…n]:其中的[n]是表示此过程可以包含多条Transact-SQL语句的占位符。3.注意事项③自动执行存储过程。SQLServer启动时可以自动执行一个或多个存储过程。这些存储过程必须由系统管理员在master数据库中创建,并在sysadmin固定服务器角色下作为后台过程执行。这些过程不能有任何输入参数。④sql_statement的限制。除了SETSHOWPLANTEXT和SETSHOWPLANALL外,其他SET语句均可在存储过程内使用。必须使用对象所有者名对数据库对象进行限定的语句有:CREATETABLE、ALTERTABLE、DROPTABLE、TRUNCATETAB