存儲過程是數(shù)據(jù)庫中必不可少的利器,之所以會廣泛使用,當然是因為他有著很多的優(yōu)點:
1.提高性能.
存儲過程只在創(chuàng)造時進行編譯,以后每次執(zhí)行存儲過程都不需再重新編譯,而一般SQL語句每執(zhí)行一次就編譯一次,所以使用存儲過程可提高數(shù)據(jù)庫執(zhí)行速度。
2.減少網(wǎng)絡流量
長長的SQL語句塊只需要存儲過程名代替,網(wǎng)絡通信量減少,從而提高服務器效率.
3.減少注入式攻擊,提高安全性
封裝了SQL語句,避免了拼接SQL而導致的注入式攻擊.
4.便于后期的修改與維護,還可以重復使用.
語法:
以表student為例,它有三個字段id,name,age;
創(chuàng)建一個存儲過程:
無參數(shù)的:
取最大id值:
create proc GetMaxId執(zhí)行:
exec GetMaxId
有參數(shù)的:
依據(jù)id查找學生姓名:
create proc GetName
@id int
as
begin
select name from student where id=@id
end
執(zhí)行:
exec GetName 1
有返回值的:
依據(jù)id返回學生年齡:
create proc GetAge
(@id int,
@age int output)
--一定要用括號括起來,參數(shù)間用逗號隔開,輸出參數(shù)要加output
as
begin
set @age=(select age from student where id=@id)
end
執(zhí)行:
declare @Age int --要聲明一個輸出參數(shù)
exec GetAge 85 ,@Age output
刪除存儲過程
drop 存儲過程名;
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答?。?點擊進入論壇