什麼是儲存過程

2021-10-06 09:11:22 字數 1727 閱讀 1222

儲存過程(stored procedure)是在大型資料庫系統中,一組為了完成特定功能的sql 語句集,它儲存在資料庫中,一次編譯後永久有效,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要物件。在資料量特別龐大的情況下利用儲存過程能達到倍速的效率提公升。

sql中的儲存過程及相關介紹:

create procedure [擁有者.]儲存過程名[;程式編號]

[(引數#1,…引數#1024)]

[with

][for replication]

as 程式行

其中儲存過程名不能超過128個字。每個儲存過程中最多設定1024個引數

(sql server 7.0以上版本),引數的使用方法如下:

@引數名資料型別[varying] [=內定值] [output]

每個引數名前要有乙個「@」符號,每乙個儲存過程的引數僅為該程式內部使用,引數的型別除了image外,其他sql server所支援的資料型別都可使用。

[內定值]相當於我們在建立資料庫時設定乙個欄位的預設值,這裡是為這個引數設定預設值。[output]是用來指定該引數是既有輸入又有輸出值的,也就是在呼叫了這個儲存過程時,如果所指定的引數值是我們需要輸入的引數,同時也需要在結果中輸出的,則該項必須為output,而如果只是做輸出引數用,可以用cursor,同時在使用該引數時,必須指定varying和output這兩個語句。

例子:create procedure order_tot_amt

@o_id int,

@p_tot int output

asselect @p_tot = sum(unitprice*quantity)

from orderdetails

where orderid=@o_id

go例子說明:

該例子是建立乙個簡單的儲存過程order_tot_amt,這個儲存過程根據使用者輸入的訂單id號碼(@o_id),由訂單明細表 (orderdetails)中計算該訂單銷售總額[單價(unitprice)*數量(quantity)],這一金額通過@p_tot這一引數輸出給呼叫這一儲存過程的程式。

功能:這類語言主要提供以下功能,讓使用者可以設計出符合應用需求的程式:

1)、變數說明

2)、ansi(美國國家標準化組織)相容的sql命令(如select,update….)

3)、一般流程控制命令(if…else…、while….)

4)、內部函式

呼叫儲存過程

儲存過程可以在三種環境下被呼叫:

command命令下,基本語法為:exec sp_name [引數名];

sql環境下,基本語法為:call sp_name [引數名];

pl/sql環境下,基本語法為:begin sp_name [引數名] end;

刪除儲存過程

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這個物件建立文字

什麼是儲存過程

sql語句執行的時候要先編譯,然後執行。儲存過程就是編譯好了的一些sql語句。應用程式需要用的時候直接呼叫就可以了,所以效率會高。儲存過程介紹 儲存過程是由流控制和sql語句書寫的過程,這個過程經編譯和優化後儲存在資料庫伺服器中,應用程式使用時只要呼叫即可。在oracle中,若干個有聯絡的過程可以組...

什麼是儲存過程?

一 儲存過程介紹 儲存過程是由流控制和sql語句書寫的過程,這個過程經編譯和優化 後儲存在 資料庫伺服器中,使用時只要呼叫即可。在oracle中,若干個 有聯絡的過程可以組合在一起構成 程式包。使用儲存過程有以下的優點 儲存過程的能力大大增強了sql語言的功能和靈活性。儲存過程可 以用流 控制語句編...

什麼是儲存過程

儲存過程介紹 儲存過程是由流控制和sql語句書寫的過程,這個過程經編譯和優化 後儲存在資料庫伺服器中,使用時只要呼叫即可。在oracle中,若干個 有聯絡的過程可以組合在一起構成程式包。使用儲存過程有以下的優點 儲存過程的能力大大增強了sql語言的功能和靈活性。儲存過程可 以用流控制語句編寫,有很強...