存储过程优点与语法(无参,有参,返回值)

存储过程是数据库中必不可少的利器,之所以会广泛使用,当然是因为他有着很多的优点:

1.提高性能.

   存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。

2.减少网络流量

   长长的SQL语句块只需要存储过程名代替,网络通信量减少,从而提高服务器效率.

3.减少注入式攻击,提高安全性

  封装了SQL语句,避免了拼接SQL而导致的注入式攻击.

4.便于后期的修改与维护,还可以重复使用.


语法:

以表student为例,它有三个字段id,name,age;

创建一个存储过程:

无参数的:

取最大id值: 

create proc GetMaxId
as
begin
select max(id) from student
end

执行:
exec GetMaxId 

有参数的:

依据id查找学生姓名:

create proc GetName  
@id int 
as 
begin   
select name from student where id=@id  
end   

执行:

exec GetName 1 
有返回值的:

依据id返回学生年龄:

create proc GetAge  
(@id int,  
@age int output)  
     --一定要用括号括起来,参数间用逗号隔开,输出参数要加output  
as 
begin  
set @age=(select age from student where id=@id)  
end 
执行:
declare @Age int --要声明一个输出参数  
exec GetAge 85 ,@Age output   
 

删除存储过程

drop 存储过程名;

ok!

 


posted @ 2009-08-11 11:42  怪怪虫  阅读(976)  评论(0编辑  收藏  举报