1,概念
儲存過程(stored procedure)是一種在資料庫中儲存複雜程式,以便外部程式呼叫的一種資料庫物件。
儲存過程是為了完成特定功能的sql語句集,經編譯建立並儲存在資料庫中,使用者可通過指定儲存過程的名字並給定引數(需要時)來呼叫執行。
儲存過程思想上很簡單,就是資料庫 sql 語言層面的**封裝與重用。
2,作用
缺點,儲存過程,往往定製化於特定的資料庫上,因為支援的程式語言不同。當切換到其他廠商的資料庫系統時,需要重寫原有的儲存過程。
③ 臨時儲存過程:分為兩種儲存過程:
一是本地臨時儲存過程,以井字型大小(#)作為其名稱的第乙個字元,則該儲存過程將成為乙個存放在tempdb資料庫中的本地臨時儲存過程,且只有建立它的使用者才能執行它;
二是全域性臨時儲存過程,以兩個井字型大小(##)號開始,則該儲存過程將成為乙個儲存在tempdb資料庫中的全域性臨時儲存過程,全域性臨時儲存過程一旦建立,以後連線到伺服器的任意使用者都可以執行它,而且不需要特定的許可權。
④ 遠端儲存過程:在sql server2005中,遠端儲存過程(remote stored procedures)是位於遠端伺服器上的儲存過程,通常可以使用分布式查詢和execute命令執行乙個遠端儲存過程。
⑤ 擴充套件儲存過程:擴充套件儲存過程(extended stored procedures)是使用者可以使用外部程式語言編寫的儲存過程,而且擴充套件儲存過程的名稱通常以xp_開頭
4,儲存過程的建立
// 儲存過程就是具有名字的一段**,用來完成乙個特定的功能。
// 建立的儲存過程儲存在資料庫的資料字典中。
create proc[edure] 儲存過程名
@引數1 [資料型別]=[預設值] [out | in | inout]
@引數2 [資料型別]=[預設值] [out | in | inout]
as sql語句
exec 過程名[引數]
預設情況下,儲存過程和預設資料庫相關聯,如果想指定儲存過程建立在某個特定的資料庫下,那麼在過程名前面加資料庫名做字首。 在定義過程時,使用 delimiter $$ 命令將語句的結束符號從分號 ; 臨時改為兩個 $$,使得過程體中使用的分號被直接傳遞到伺服器,而不會被客戶端(如mysql)解釋。
5,變數
區域性變數的宣告放在儲存過程體的開始:declarevariable_name [,variable_name...] datatype [default value];
變數的賦值:set 變數名 = 表示式值 [,variable_name = expression ...]
使用者變數名一般以@開頭
6,儲存過程的刪除
drop 儲存過程名
參考文獻:
mysql儲存過程 MySQL儲存過程
在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...
mysql 儲存過程 mysql 儲存過程
建立 為建立儲存過程的結束標誌,使用delimiter 可更改標誌 格式create procedure begin sqlend create procedure myprocedure in param integer begin select from tb role where tb rol...
mysql 儲存過程 MySQL儲存過程
目錄 儲存過程 簡介是一組為了完成特定功能的sql語句集合 比傳統sql速度更快 執行效率更高 儲存過程的優點 執行一次後,會將生成的二進位制 駐留緩衝區,提高執行效率 sql語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...