sql sever 儲存過程總結及實驗

2021-10-14 07:52:17 字數 2690 閱讀 7453

定義

儲存過程是資料庫中的乙個功能,是一組為了完成特定功能、可以接收和返回使用者引數的t-sql語句預編譯集合,經過編譯後儲存在資料庫中,以乙個名稱儲存並作為乙個單元處理。儲存過程儲存在資料庫內,可由應用程式通過乙個呼叫執行,而且允許使用者宣告變數、帶引數執行以及其他強大的程式設計功能。儲存過程在第一次執行時進行語法檢查和編譯,執行後它的執行計畫就駐留在快取記憶體中,用於後續呼叫。儲存過程可以接受和輸出引數、返回執行儲存過程的狀態值,還可以巢狀呼叫。

分類

(1)系統儲存過程

系統儲存過程主要儲存在master資料庫中,一般以「sp_」為字首。

(2)使用者自定義的儲存過程

使用者自定義儲存過程是由使用者建立並能夠完成某些特定功能而編寫的儲存過程,它可以輸入引數、向客戶端返回**或結果、訊息等,也可以返回輸出引數。

(3)擴充套件儲存過程

擴充套件儲存過程通常以「xp_」為字首。

ⅰ 建立

create

procedure 儲存過程名

[ @引數名 資料型別 [

(長度)][

,……,

]] @引數名 資料型別 [

(長度)

] output [

,…… ]

[with encryption ]

[with recompile ]

ast-

sql語句

說明:

[ with encryption ]:可以為儲存過程的建立文字加密

[ with recompile ]:在每次執行時重新編譯

ⅱ 執行

execute  儲存過程名
說明:

execute命令表示執行儲存過程,可以簡寫成exec。

儲存過程名可以是已建立的使用者自定義儲存過程名,也可以是系統儲存過程名或者擴充套件儲存過程名。

ⅲ 檢視儲存過程

exec sp_depends 儲存過程

exec sp_help 儲存過程

exec sp_helptext 儲存過程

說明:

sp_depends顯示儲存過程所關聯的資料表和字段資訊。

sp_help顯示被檢視的儲存過程的所有者、型別、建立時間以及包含哪些引數等資訊。

sp_helptext顯示被檢視的儲存過程的建立文字資訊。

建立時被加密的儲存過程的建立文字不能被檢視。

ⅳ 修改儲存過程

alter

procedure 儲存過程名

[ @引數名 資料型別 [

(長度)][

,……,

]] @引數名 資料型別 [

(長度)

] output [

,…… ]

[with encryption ]

[with recompile ]

ast-

sql語句

說明:與建立的語法結構一樣。

ⅴ 刪除儲存過程

drop

procedure [,.

..n]

1 輸入姓名,查這名學生最好成績的課程號,並顯示這名學生最好成績的課程資訊:

create

procedure test1

@name nvarchar(4)

,@課程號_最好成績 nvarchar(

10) output

asselect @課程號_最好成績=

(select

top1 課程號 from score where 學號=

(select 學號 from 學生 where 姓名=

@name

)order

by 成績 desc

)

declare

@sc nvarchar(10)

exec test1 張三,

@sc output

select

*from course

where 課程編號=

@sc

2 輸入年齡段,查在年齡段之間的學生,預設18-22歲之間:

create

procedure test2

@n1int=18

,@n2

int=

22as

select 編號,姓名,性別,年齡 from 學生

where 年齡 between

@n1and

@n2

exec test2                --查詢年齡在[18,22]的學生

exec test2 20,30

--查詢年齡在[20,30]的學生

exec test2 @n2=30

,@n1=20

-- 查詢年齡在[20,30]的學生

3 刪除儲存過程test2:

drop

procedure text2

sqlsever儲存過程

create procedure dbo procregisterflow pageindex int,pagesize int,sqllogiccode int output,sqllogicmsg varchar 1000 output,sqlerrorcode int output,sqler...

SQL Sever語言 儲存過程及觸發器

儲存過程 就像函式一樣的 會儲存在資料庫中 可程式設計性 儲存過程 建立儲存過程 儲存在資料庫表,可程式設計性,儲存過程 create proc jiafa 需要的引數 a int,b int as 儲存過程內容 declare c int set c a b return c go相當於乙個函式 ...

SQL Sever 儲存過程的建立和執行

無參的儲存過程建立 create procedure pro test1 asbegin select from student where stuid 1 end 查詢儲存過程 exec pro test1 declare return value int exec return value db...