SQL Server 2012 存儲過程



1.存儲過程

存儲過程是由過程化SQL語句書寫的過程,這個過程經過編譯和優化後存儲在數據庫服務器中,因此稱它爲存儲過程,使用時只要調用即可。使用存儲過程可以實現代碼的複用、提高運行效率、降低通信流量以及方便實施業務規則。
1.系統存儲過程:
SQL Server內置存儲過程,物理上存儲在Resource中,邏輯上存儲在各個數據庫的sys架構中。系統存儲過程以“sp_”開頭。
2.用戶存儲過程:
用戶自定義的存儲過程,可以在用戶數據庫或除了Resource之外的其他系統數據庫中創建。
3.臨時存儲過程:
臨時存儲過程存儲在tempdb臨時數據庫中,以“#”開頭的臨時存儲過程稱爲局部臨時存儲過程,創建後僅對當前用戶連接可見,當用戶關閉連接時被刪除;以“##”開頭的臨時存儲過程稱爲全局臨時存儲過程,創建後對任何用戶都可見,當最後一個用戶會話結束時被刪除。


2.無參存儲過程

語法格式:

--創建存儲過程
CREATE PROC <過程名>
AS
<過程化SQL塊>

--使用存儲過程
EXEC <過程名>

使用示例:創建getMaleStudent存儲過程返回student表中的男同學信息

--創建存儲過程
create proc getMaleStudent
as
select *
from student
where Sex='男'

--使用存儲過程
exec getMaleStudent

在這裏插入圖片描述

3.帶入參存儲過程

語法格式:

--創建存儲過程
CREATE PROC <過程名>(<入參1> [,<入參2>]...)
AS
<過程化SQL塊>

--使用存儲過程
EXEC <過程名> <入參值> [,<入參值>]...

使用示例:創建getStudentBySex存儲過程根據性別參數返回對應的學生信息

--創建存儲過程
create proc getStudentBySex(@Sex nvarchar(5))
as
select *
from student
where Sex=@Sex

--使用存儲過程
exec getStudentBySex '男'

在這裏插入圖片描述

4.帶出參存儲過程

語法格式:

--創建存儲過程
CREATE PROC <過程名>(<入參1>,<出參1 OUTPUT> [,<入參或出參>]...)
AS
<過程化SQL塊>

--使用存儲過程
EXEC <過程名> <入參值>,<出參 OUTPUT> [,<入參值或出參>]...

使用示例:創建getStudentNum存儲過程查看不同性別的學生數量

--創建存儲過程
create proc getStudentNum(@Sex nvarchar(5),@StuNum int output)
as
select @StuNum=count(*)
from student
where Sex=@Sex

--使用存儲過程
declare @StuNum int  --定義變量
declare @Sex nvarchar(5) ='男'
exec getStudentNum @Sex ,@StuNum output
select @sex 性別,@StuNum 數量

在這裏插入圖片描述

5.修改存儲過程

  1. 使用SSMS工具
    依次打開數據庫,選擇“可編程性”,然後選擇“存儲過程”,右擊需要修改的存儲過程,選擇“修改”,進入查詢編輯器,在編輯器中對存儲過程進行修改。
    在這裏插入圖片描述
    點擊執行完成存儲過程的修改
    在這裏插入圖片描述
  2. 使用SQL方式
    語法格式:
--修改存儲過程
ALTER PROC <過程名>[(<入參1>,<出參1 OUTPUT> [,<入參或出參>]...)]
AS
<過程化SQL塊>

使用示例:修改getMaleStudent存儲過程查看女學生信息

--修改存儲過程
alter proc getMaleStudent
as
select *
from student
where Sex='女'

6.查看存儲過程

語法格式:

--查看存儲過程屬性信息、參數與數據類型
sp_help <存儲過程名>

使用示例:使用sp_help查看getStudentNum存儲過程

sp_help getStudentNum

在這裏插入圖片描述

語法格式:

--查看存儲過程源代碼
sp_helptext <存儲過程名>

使用示例:使用sp_helptext查看getStudentNum存儲過程

sp_helptext getStudentNum

在這裏插入圖片描述



7.刪除存儲過程

  1. 使用SSMS工具刪除存儲過程
    依次打開數據庫,選擇“可編程性”,然後選擇“存儲過程”,右擊需要修改的存儲過程,選擇“刪除”
    在這裏插入圖片描述
    進入刪除對象對話框,點擊確定即可完成存儲過程的刪除。
    在這裏插入圖片描述

  2. 使用SQL方式刪除存儲過程
    語法格式:

DROP PROC <存儲過程名>

使用示例:刪除getStudentBySex存儲過程

drop proc getStudentBySex

在這裏插入圖片描述



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章