SQL Server 儲存過程

2021-09-12 06:26:45 字數 2148 閱讀 4824

一.儲存過程概念

儲存過程就是作為可執行物件存放在資料庫中的乙個或多個sql命令。 通俗來講:儲存過程其實就是能完成一定操作的一組sql語句。

儲存過程是由一些sql語句和控制語句組成的被封裝起來的過程,它駐留在資料庫中,可以被客戶應用程式呼叫,也可以從另乙個過程或觸發器呼叫。它的引數可以被傳遞和返回。與應用程式中的函式過程類似,儲存過程可以通過名字來呼叫,而且它們同樣有輸入引數和輸出引數

二.儲存過程的分類

sql server提供了3種型別的儲存過程。各型別儲存過程如下:    

系統儲存過程:用來管理sql server和顯示有關資料庫和使用者的資訊的儲存過程。

自定義儲存過程:使用者在sql server中通過採用sql語句建立儲存過程。    

擴充套件儲存過程:通過程式語言(例如,c)建立外部例程,並將這個例程在sql server中作為儲存過程使用。

三.儲存過程的優點

(1)儲存過程可以巢狀使用,支援**重用。

(2)儲存過程可以接受與使用引數動態執行其中的sql語句。

(3)儲存過程比一般的sql語句執行速度快。儲存過程在建立時已經被編譯,每次執行時不需要重新編譯。而sql語句每次執行都需要編譯。

(5)儲存過程允許模組化程式設計。儲存過程一旦建立,以後即可在程式中呼叫任意多次。這可以改進應用程式的可維護性,並允許應用程式統一訪問資料庫。

(6)儲存過程可以減少網路通訊流量。乙個需要數百行sql語句**的操作可以通過一條執行過程**的語句來執行,而不需要在網路中傳送數百行**。

(7)儲存過程可以強制應用程式的安全性。引數化儲存過程有助於保護應用程式不受sql injection攻擊

四.建立儲存過程

create proc [ edure ] procedure_name [ ; number ]  

[      

[ varying ] [ = default ] [ output ]     ] [ ,...n ]

as sql_statement

create proc語句的引數說明。    

create procedure:關鍵字,也可以寫成create proc。  

procedure_name:建立的儲存過程名稱。  

number:對儲存過程進行分組。    @parameter:儲存過程引數,儲存過程可以宣告乙個或多個引數。    data_type:引數的資料型別,所有資料型別(包括text、ntext和image)均可以用作儲存過程的引數,但是,cursor資料型別只能用於output引數。  

varying:可選項,指定作為輸出引數支援的結果集(由儲存過程動態構造,內容可以變化),該關鍵字僅適用於游標引數。    

defaul:可選項,表示為引數設定預設值。    

output:可選項,表明引數是返回引數,可以將引數值返回給呼叫的過程。  

n :表示可以定義多個引數。  

as:指定儲存過程要執行的操作。  

sql_statement:儲存過程中的過程體。

例子:使用create procedure語句建立乙個儲存過程,用來根據學生編號查詢學生資訊

五.執行儲存過程

儲存過程建立完成後,可以通過execute執行,可簡寫為exec

六.修改和刪除儲存過程

語法:alter  procedure procedure_name(修改)

drop procedure procedure_name(刪除)

sql server儲存過程

建立表的語句 create table student sno int primary key,sname nvarchar 30 sgentle nvarchar 2 sage int,sbirth smalldatetime,sdept nvarchar 30 drop table studen...

SQLSERVER儲存過程

sqlserver儲存過程使用說明書 引言首先介紹一下什麼是儲存過程 儲存過程就是將常用的或很複雜的工作,預先用 sql語句寫好並用乙個指定的名稱儲存起來,並且這樣的語句是放在資料庫中的,還可以根據條件執行不同 sql語句,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫 ex...

SQL Server 儲存過程

儲存過程概念 儲存過程優點 儲存過程的介面 儲存過程的解析 編譯過程 儲存過程安全性 檢視儲存過程 加密 解密儲存過程 儲存過程概念 儲存過程 stored procedure 是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數 帶參儲存過程 來執行...