存储过程
存储过程:是在大型数据库系统中,一组为了完成特定功能的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
.....