1、执行速度比普通的SQL语句快
再运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。 由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。
2、便于集中控制
当企业规则变化时,只需要在数据库的服务器中修改相应的存储过程,而不需要逐个的在应用程序中修改,应用程序保持不变即可,这样就省去了修改应用程序工作量。
3、可以降低网络的通信量
4、保证数据库的安全性和完整性
通过存储过程不仅可以使没有权限的用户在控制之下间接地存取数据库,保证数据的安全;而且可以使相关的动作在一起发生,从而可以维护数据库的完整性。
5、灵活性
存储过程可以用流控制语句编写,具有很强的灵活性,可以完成复杂的判断和运算,可以根据条件执行不通SQL语句。
存储过程的语法:
CREATE PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ][ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ][ FOR REPLICATION ]
AS sql_statement [ ...n ]
****其中:[] 表示可选
例子:
create procedure transfer (intAccout INT,outAccout INT amount FLOAT)
as declare
totalDeposit FLOAT
begin
select total into totalDiposit from account where accountnum =outAccount;
if totalDeposit is NULL then
rollback;
return;
end if ;
if totalDeposit <amount then
rollback;
return;
end if;
update account set total=total-amount where accountnum=outAccount;
update account set total=total-amount where accountnum=inAccount;
commit;
end;
调用时;call procedure transfer(010038.010039,10000);
1383

被折叠的 条评论
为什么被折叠?



