儲存過程
基本語法[1]一.建立儲存過程
create procedure sp_name
@[引數名] [型別],@[引數名] [型別]
asbegin
.........
end以上格式還可以簡寫成:
create proc sp_name
@[引數名] [型別],@[引數名] [型別]
asbegin
.........
end/*注:「sp_name」為需要建立的儲存過程的名字,該名字不可以以阿拉伯數字開頭*/
二.呼叫儲存過程
1.基本語法:exec sp_name [引數名]
三.刪除儲存過程
1.基本語法:
drop procedure sp_name
2.注意事項
(1)不能在乙個儲存過程中刪除另乙個儲存過程,只能呼叫另乙個儲存過程
四.其他常用命令
1.show procedure status
顯示資料庫中所有儲存的儲存過程基本資訊,包括所屬資料庫,儲存過程名稱,建立時間等
2.show create procedure sp_name
顯示某乙個mysql儲存過程的詳細資訊
3、exec sp_helptext sp_name
顯示你這個sp_name這個物件建立文字
儲存過程的種類:
1,系統儲存過程:以sp_開頭,用來進行系統的各項設定,取得資訊相關管理工作,如sp_help就是取得指定物件的資訊
2,擴充套件儲存過程以xp_開頭,用來呼叫作業系統提供的功能,
exec master..xp_cmdshell 'ping 10.8.16.1'
3,使用者自己定義的儲存過程,這是我們所指的儲存過程
常用格式
create procedure procedue_name
[@parameter data_type][output]
[with]
asql_statement
解釋:output:表示此引數是可傳回的
with
recompile:表示每次執行此儲存過程時都重新編譯一次
encryption:所建立的儲存過程的內容會被加密
如:表book的內容如下
編號 書名 **
001 c語言入門 $30
002 powerbuilder報表開發 $52
例項1:查詢表book的內容的儲存過程
create proc query_book
asselect * from book
goexec query_book------呼叫儲存過程
例項2:加入一筆記錄到表book,並查詢此表中所有書籍的總金額
create proc insert_book
@param1 char(10),@param2 varchar(20),@param3 money,@param4 money output
with encryption ---------加密
asinsert book(編號,書名,**) values(@param1,@param2,@param3)
select @param4=sum(**) from book
go執行例子:
declare @total_price money
exec insert_book '003','delphi 控制項開發指南',$100,@total_price
print '總金額為'+convert(varchar,@total_price)
go儲存過程的3種傳回值:
1.以return傳回整數
2.以output格式傳回引數
3.recordset
傳回值的區別:
output和return都可在批次程式中用變數接收,而recordset則傳回到執行批次的客戶端中
例項3:設有兩個表為product,order,其表內容如下:
product
產品編號 產品名稱 客戶訂數
001 鋼筆 30
002 毛筆 50
003 鉛筆 100
order
產品編號 客戶名 客戶訂金
001 南山區 $30
002 羅湖區 $50
003 寶安區 $4
請實現按編號為連線條件,將兩個表連線成乙個臨時表,該錶只含編號.產品名.客戶名.訂金.總金額,
總金額=訂金*訂數,臨時表放在儲存過程中
**如下:
create proc temp_sale
asselect a.產品編號,a.產品名稱,b.客戶名,b.客戶訂金,a.客戶訂數* b.客戶訂金 as總金額
into #temptable from product a inner join order b on a.產品編號=b.產品編號
if @@error=0
print 'good'
else
print 'fail'
go
儲存過程菜鳥例子
這是在pubs庫中建立乙個名稱為computeplus的儲存過程,該儲存過程的作用是,將兩個float型別變數進行相加後,從第三個變數輸出。有筆誤。應該是 use pubs go create procedure computeplus firstvariable float,secondvaria...
oracle 儲存過程菜鳥級知識
一.概述 oracle儲存過程開發的要點是 使用notepad文字編輯器,用oracle pl sql程式語言寫乙個儲存過程 在oracle資料庫中建立乙個儲存過程 在oracle資料庫中使用sql plus工具執行儲存過程 在oracle資料庫中修改儲存過程 通過編譯錯誤除錯儲存過程 刪除儲存過程...
菜鳥型學習儲存過程用法
sql的儲存過程比直接的語句查詢更為快捷,且支援更複雜的查詢條件。簡單的儲存過程,就是在建立乙個儲存過程,內容插入查詢語句,結尾再呼叫儲存過程即可 use property set ansi nulls on goset quoted identifier on gocreate procedure...