儲存過程懂不懂

2021-08-25 17:43:13 字數 4111 閱讀 5600

儲存過程的官方定義是這麼說的:

儲存過程(

stored procedure

)是一組為了完成特定功能的

sql語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要物件,任何乙個設計良好的資料庫應用程式都應該用到儲存過程。

其實說的再簡單一點,她就是乙個過程而已,對!就是和你所熟知的那個sub……end sub實質上是乙個東西。

儲存過程除了與一般的過程擁有同樣的優點外(多次呼叫,可移植性好等),還在一定程度上減少了網路流量(只需要傳送呼叫過程的語句);而且通過對執行儲存過程的許可權控制還能保證系統資料的安全等等,等等。

簡而言之,使用儲存過程存在很多好處,但是卻沒有明顯的壞處。

ok!鋪墊完畢,開始正式介紹——儲存過程。(這裡應該有掌聲)

l 基本語法格式

n 建立儲存過程

create

proc 過程名/*建立儲存過程*/

2: @parameter 引數型別  /*輸入引數*/
3: ...
4: @parameter 引數型別  output

/*輸出引數*/

5: ...
6:

as

7:

begin

8:     命令列或命令塊/*需要儲存過程執行的操作*/
9: end
n 執行儲存過程

1:

execute 過程名 [引數,引數……][output]

n 修改儲存過程

1:

alter

proc 過程名*/修改儲存過程*/

2: @parameter 引數型別  /*輸入引數*/
3: ...
4: @parameter 引數型別  ouput/*輸出引數*/
5: ...
6:

as

7:

begin

8:    命令行貨命令塊/*儲存過程執行的操作*/
9:

end

n 重新命名儲存過程

1: sp_rename 原過程名,新過程名
n 刪除儲存過程

1:

drop proc儲存過程名,[儲存過程名2,……]

l 儲存過程在**?

ps:修改、重新命名、刪除儲存過程也可以在相應資料庫中的「可編譯性」——「儲存過程」中右鍵進行相應相關操作(看個人喜好)。

l 實戰演練

1. 建立資料庫(略)

文章末尾附資料對應指令碼,執行即可。

2. 建立無引數儲存過程

1:

create

proc proc1

2:

as

3:

begin

4:

select a.stuno,stuname,stucollege,stuscore from student a

5:

where stuscore >90

6:

end

3. 建立有引數儲存過程

1:

create

proc proc2

2: @coures varchar(20)
3:

as

4:

begin

5:

select stuno,stuname,stucollege,stuscore from student a

6:

where stuscore=@coures

7:

end

4. 執行儲存過程

1:

execute proc1

2:

execute proc2 '80'

如圖所示

附:對應資料指令碼

1:

use [stuinfo]

2:

go

3:

set ansi_nulls on

4:

go

5:

set quoted_identifier on

6:

go

7:

set ansi_padding on

8:

go

9:

create

table [dbo].[student](

10:        [stuno] [varchar](50) null,
11:        [stuname] [varchar](50) null,
12:        [stucollege] [varchar](50) null,
13:        [stuscore] [varchar](50) null
14: ) on [primary]
15:

go

16:

set ansi_padding off

17:

go

18: insert [dbo].[student] ([stuno], [stuname], [stucollege], [stuscore]) values (n'1', n'丁福東', n'物電學院', n'80')
19: insert [dbo].[student] ([stuno], [stuname], [stucollege], [stuscore]) values (n'2', n'史蒂芬', n'物電學院', n'75')
20: insert [dbo].[student] ([stuno], [stuname], [stucollege], [stuscore]) values (n'3', n'梵蒂岡', n'數信學院', n'98')
21: insert [dbo].[student] ([stuno], [stuname], [stucollege], [stuscore]) values (n'4', n'金凱華', n'國貿學院', n'69')
22: insert [dbo].[student] ([stuno], [stuname], [stucollege], [stuscore]) values (n'5', n'安淑霞', n'數信學院', n'78')
23: insert [dbo].[student] ([stuno], [stuname], [stucollege], [stuscore]) values (n'6', n'張成棟', n'生科學院', n'84')
24: insert [dbo].[student] ([stuno], [stuname], [stucollege], [stuscore]) values (n'7', n'安世偉', n'國貿學院', n'95')
25: insert [dbo].[student] ([stuno], [stuname], [stucollege], [stuscore]) values (n'8', n'任文才', n'生科學院', n'71')
26: insert [dbo].[student] ([stuno], [stuname], [stucollege], [stuscore]) values (n'9', n'秦福德', n'物電學院', n'54')
27: insert [dbo].[student] ([stuno], [stuname], [stucollege], [stuscore]) values (n'10', n'孫德榮', n'生科學院', n'68')

儲存過程懂不懂

儲存過程的官方定義是這麼說的 儲存過程 stored procedure 是一組為了完成特定功能的 sql語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。儲存過程是資料庫中的乙個重要物件,任何乙個設計良好的資料庫應用程式都應該用到儲存過程。其...

儲存過程懂不懂

儲存過程的官方定義是這麼說的 儲存過程 stored procedure 是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。儲存過程是資料庫中的乙個重要物件,任何乙個設計良好的資料庫應用程式都應該用到儲存過程。其實...

儲存過程懂不懂

儲存過程的官方定義是這麼說的 儲存過程 stored procedure 是一組為了完成特定功能的 sql語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。儲存過程是資料庫中的乙個重要物件,任何乙個設計良好的資料庫應用程式都應該用到儲存過程。其...