一.什麼是資料庫儲存過程?
儲存過程(stored procedure)是一組為了完成特定功能的sql 語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。
用來執行管理任務或應用複雜的業務規則。
儲存過程可以帶引數,也可以返回結果。
儲存過程可以包含資料操縱語句、變數、邏輯 控制語句等。
儲存過程是一組預編譯的sql語句,它可以包含資料操縱語句、變數、邏輯控制語句等
儲存過程允許帶引數,引數分為:
輸入引數
輸出引數
其中,輸入引數可以有預設值
二.儲存過程的優點:
(1)儲存過程的能力大大增強了sql語言的功能和靈活性。
(2)可保證資料的安全性和完整性。
(3)通過儲存過程可以使沒有許可權的使用者在控制之下間接地訪問資料庫,從而保證資料的安全。
(4)通過儲存過程可以使相關的動作在一起發生,從而可以維護資料庫的完整性。
(5)在執行儲存過程前,資料庫已對其進行了語法和句法分析,並給出了優化執行方案。這種已經編譯好的過程可極大地改善sql語句的效能。
(6)可以降低網路的通訊量。
(7)使體現企業規則的運算程式放入資料庫伺服器中,以便集中控制。
(8)儲存過程可以分為系統儲存過程、擴充套件儲存過程和使用者自定義的儲存過程;
三.儲存過程的分類
(1)資料庫系統儲存過程:資料庫自帶
我們先來看一下系統儲存過程,系統儲存過程由系統定義,主要存放在master資料庫中,名稱以"sp"開頭或以"xp"開頭。儘管這些系統儲存過程在master資料庫中,
但我們在其他資料庫還是可以呼叫系統儲存過程。有一些系統儲存過程會在建立新的資料庫的時候被自動建立在當前資料庫中。
常用系統儲存過程有:
(2)使用者自定義資料庫儲存過程:由使用者根據需要自定義
四.使用儲存過程例項:
1.不帶引數
create procedure proc_select_officeinfo--(儲存過程名)
as select id,name from office_info--(sql語句)
exec proc_select_officeinfo--(呼叫儲存過程)
2.帶輸入引數
create procedure procedure_proc_getoffinfobyid --(儲存過程名)
@id int--(引數名 引數型別)
as select name from dbo.office_info where id=@id--(sql語句)
exec procedure_proc_getoffinfobyid 2--(儲存過程名稱之後,空格加上引數,多個引數中間以逗號分隔)
注:引數賦值是,第乙個引數可以不寫引數名稱,後面傳入引數,需要明確傳入的是哪個引數名稱
3.帶輸入輸出引數
create procedure proc_office_info--(儲存過程名)
@id int,@name varchar(20) output--(引數名 引數型別)傳出引數要加上output
as begin
select @name=name from dbo.office_info where id=@id --(sql語句)
end
declare @housename varchar(20) --宣告乙個變數,獲取儲存過程傳出來的值
exec proc_office_info--(儲存過程名)
4,@housename output--(傳說引數要加output 這邊如果用@變數 = output會報錯,所以換一種寫法)
select @housename--(顯示值)
4.帶返回值的
create procedure proc_office_info--(儲存過程名)
@id int--(引數名 引數型別)
as begin
if(select name from dbo.office_info where id=@id)=null --(sql語句)
begin
return -1
endelse
begin
return 1
endend
declare @house varchar(20) --宣告乙個變數,獲取儲存過程傳出來的值
exec @house=proc_office_info 2 --(呼叫儲存過程,用變數接收返回值)
--注:帶返回值的儲存過程只能為int型別的返回值
print @house
資料庫 儲存過程
儲存過程,stored procedure,是在大型資料庫系統中,一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。模擬於c中的函式。mysql與sqlserver是不同的。建立儲存過程 conn getconnec...
資料庫 儲存過程
在資料庫中,儲存過程屬於一種物件,是一種高效的安全的訪問資料庫的方法。下邊我們就資料庫中的儲存過程總結它的相關知識點。我們分為概述,實現和管理三個方面來總結。一,儲存過程的概述 1,概念 儲存過程 storedprocedure 是在資料庫伺服器端執行的一組t sql語句的集合,經編譯後存放在資料庫...
資料庫 儲存過程
一組為了完成特定功能的sql 語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數 如果有引數 來執行它。系統儲存過程 以sp 開頭,用來進行系統的各項設定.取得資訊.相關管理工作。本地儲存過程 使用者建立的儲存過程是由使用者建立並完成某一特定功能的儲存過程,這跟各種程式語言裡使用...