存储过程

存储过程:是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

优点:1.预编译。2.缓存。3.减少网络传输。4.更好的利用服务器内存。

三种存储过程:1.系统存储过程。2.本地存储过程。3.临时存储过程.a.本地临时:以#开头。 b.全局临时存储过程.以##开头。 4.远程存储过程。 5.扩展存储过程.

 

创建存储过程语法:

  create {PROC | PROCEDURE} procedure_name [; number]  /*number:用来对同名的过程分组,以便一条drop procedure语句即可将同组过程全部删除*/

  [{@parameter data_type}

  [VARYING] [=default] [out[put]][,...n]]          /*VARYING:指定作为输出参数支持的结果集* /  /*default:如果定义了默认值,用的时候可以不指定值*/

                                 /*output: 表明参数返回值.*/

  [WITH {RECOMPILE | ENCRYPTION | RECOMPILE,ENCRYPTION}[,...N]]

  /*recompile:不会缓存该存储过程,运行时重新编译.*/

  /*Encryption:加密,防止同SQL SERVER一起发布*/

  [for replication]

  AS sql_statement [ ....n ]  

 

执行存储过程:

  exec proc_name param1,param2....

 

带返回值的存储过程 列子:

create proc Pname

  @p_n char(10),

  @average int output

as

  select @average = avg(price) from products where name =@p_n

Run:

  declare @average int

  Execute Pname 'fridage',@average output

  print 'the average price :' +str(@average)

修改存储过程:

alter proc proc_name

.....  

posted on 2013-02-05 00:24  fishyk  阅读(112)  评论(0)    收藏  举报

导航