SQL-存儲過程

存儲過程

什麼是存儲過程

存儲過程(stored procedure)是一組爲了完成特定功能的SQL語句集合,經編譯後存儲在服務器端的數據庫中,利用存儲過程可以加速SQL語句的執行。

存儲過程分爲系統存儲過程和自定義存儲過程。

系統存儲過程
系統存儲過程在master數據庫中,但是在其他的數據庫中可以直接調用,並且在調用時不必在存儲過程前加上數據庫名,因爲在創建一個新數據庫時,系統存儲過程在新的數據庫中會自動創建。
自定義存儲過程
自定義存儲過程,由用戶創建並能完成某一特定功能的存儲過程,存儲過程既可以有參數又有返回值,但是它與函數不同,存儲過程的返回值只是指明執行是否成功,並不能像函數那樣被直接調用,只能利用execute來執行存儲過程。

存儲過程的優點

  1. 提高應用程序的通用性和可移植性:存儲過程創建後,可以在程序中被多次調用,而不必重新編寫該存儲過程的SQL語 句。並且數據庫專業人員可以隨時對存儲過程進行修改,且對程序源代碼沒有影響,這樣就極大的提高了程序的可移植 性。

  2. 可以更有效的管理用戶操作數據庫的權限:在Sql Server數據庫中,系統管理員可以通過對執行某一存儲過程的權限進行限制,從而實現對相應的數據訪問進行控制,避免非授權用戶對數據庫的訪問,保證數據的安全。

  3. 可以提高SQL的速度,存儲過程是編譯過的,如果某一個操作包含大量的SQL代碼或分別被執行多次,那麼使用存儲過程 比直接使用單條SQL語句執行速度快的多。

  4. 減輕服務器的負擔:當用戶的操作是針對數據庫對象的操作時,如果使用單條調用的方式,那麼網絡上還必須傳輸大量 的SQL語句,如果使用存儲過程,則直接發送過程的調用命令即可,降低了網絡的負擔。

SQL Server創建存儲過程:
 create procedure 過程名
​     @parameter    參數類型
​     @parameter   參數類型  
​     .......as 
​     begin
​     end

自定義存儲過程

創建無參無返回值類型存儲過程

CREATE PROCEDURE LogUser10000 AS
SELECT COUNT(*) FROM Teacher WHERE TID=10000 AND TPwd='123'
--調用
EXEC LogUser10000

創建帶參無返回值類型存儲過程

CREATE PROC LogUser
@id int,
@pwd nvarchar(20) AS
SELECT COUNT(*) FROM Teacher WHERE TID=@id AND TPwd=@pwd
--調用
EXEC LogUser 10000,'123'

創建有返回值類型存儲過程

CREATE PROC CheckName @id int,
@name nvarchar(20) OUTPUT AS
SELECT @name=TName FROM Teacher WHERE TID=@id DECLARE
@SS NVARCHAR(20)
EXEC CheckName 10000,@SS OUTPUT SELECT @SS
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章