標籤:資料庫預存程序
一、預存程序的優點
1.執行速度更快 – 在資料庫中儲存的預存程序語句都是編譯過的
2.允許模組化程式設計 – 類似方法的複用
3.提高系統安全性 – 防止SQL注入
4.減少網路流通量 – 只要傳輸預存程序的名稱
二、預存程序文法"[" 裡面的內容表示可選項
create proc 預存程序名
@參數1 資料類型 [=預設值] [output],
@參數2 資料類型 [=預設值] [output],
...
as
SQL語句
例:無參數操作
create proc proc_stu //建立預存程序
as
select * from 學生資訊
執行完後會建立一個proc_stu的預存程序
執行預存程序 exec proc_stu
例:使用預設值參數
create proc p_employee
@departmentid varchar(10),//不帶預設值
@zhiwei varchar(20)=‘職員‘
As
SELECT A.員工姓名,A.性別,B.部門名稱
FROM 員工資訊 A,部門名稱 B
WHERE A.所在部門編號=B.部門編號 AND B.部門編號[email protected] AND A.所任職位[email protected] //(要查看的職位)
執行 exec p_employee @departmentid=‘技術部‘,@zhiwei=‘經理‘
650) this.width=650;" title="2120632474638191365.jpg" src="https://s3.51cto.com/wyfs02/M02/A5/48/wKioL1m6gIyS19SnAABwIuyuakI063.jpg-wh_500x0-wm_3-wmp_4-s_3779487551.jpg" alt="wKioL1m6gIyS19SnAABwIuyuakI063.jpg-wh_50" />
例:使用輸出參數
create proc p_sorce
@name varchar(10),
@sorce int output //輸出參數
As
SELECT B.姓名,avg[A.分數]
FROM 成績資訊 A,學生資訊 B
WHERE A.學生編號=B.學號 AND B.姓名[email protected]
avg[]彙總函式;
執行預存程序
DECLARE @SORCE1 INT 聲明一個對象;
exec p_sorce @name=‘張苗苗‘,@ sorce [email protected] OUTPUT //OUTPUT 指定輸出參數
PRINT @SORCE1 //列印結果值
650) this.width=650;" title="720857415456143636.jpg" src="https://s4.51cto.com/wyfs02/M02/06/97/wKiom1m6gNKw3bUFAAAaW3NtwJE005.jpg-wh_500x0-wm_3-wmp_4-s_613266350.jpg" alt="wKiom1m6gNKw3bUFAAAaW3NtwJE005.jpg-wh_50" />
再例如:
create proc p_stu
@na varchar(10),
@sco int=10
as
select * from stu where [email protected] and [email protected]
go
exec p_stu @na=‘lilu‘,@sco=88
650) this.width=650;" title="6597331450425192687.jpg" src="https://s4.51cto.com/wyfs02/M01/06/97/wKiom1m6gO2xc8FOAAB-B406Nsk673.jpg-wh_500x0-wm_3-wmp_4-s_651947270.jpg" alt="wKiom1m6gO2xc8FOAAB-B406Nsk673.jpg-wh_50" />
本文出自 “Linux_woniu” 部落格,請務必保留此出處http://llu1314.blog.51cto.com/5925801/1965333
資料庫預存程序