儲存過程基礎

2021-09-06 17:24:21 字數 3019 閱讀 9586

這一篇要總結的是儲存過程,包括儲存過程有哪幾種,如何建立,以及最後如何呼叫儲存過程。所以分為以下幾個方面進行總結。

1,不帶引數的儲存過程

2,帶輸入引數的儲存過程

3,帶輸入和輸出引數的儲存過程

4,帶返回值的儲存過程

例如,以下儲存過程返回employees表中所有職員的記錄。

儲存過程**:

use

tsqlfundamentals2008;

goif

object_id('

usp_procdemonoparam

','p

') is

notnull

drop

proc

usp_procdemonoparam;

go--

1,不帶引數

create

proc

usp_procdemonoparam

asbegin

select

*from

hr.employees;

endgo

呼叫**:

use

tsqlfundamentals2008;

go--

1,不帶引數儲存過程的呼叫

exec usp_procdemonoparam;

結果:可以看到,共返回了9條記錄。

例如,該儲存過程接受輸入引數@empid,然後返回這個職員的資訊。

建立儲存過程**:

if

object_id('

usp_procdemowithinputparam

','p

') is

notnull

drop

proc

usp_procdemowithinputparam;

go--

2,帶輸入引數

create

proc

usp_procdemowithinputparam

@empid

asint

asbegin

select

*from

hr.employees

where empid=

@empid

;end

go

呼叫:

--

2,帶輸入引數儲存過程呼叫

exec usp_procdemowithinputparam @empid

=5;

結果:例如,以下儲存過程接受@empid即職員id作為輸入引數,然後返回該職員的資訊,同時返回**受影響行數作為輸出引數。

建立儲存過程**:

if

object_id('

usp_procdemowithinputoutputparam

','p

') is

notnull

drop

proc

usp_procdemowithinputoutputparam;

go--

3,帶輸入和輸出引數

create

proc

usp_procdemowithinputoutputparam

@empid

asint

,

@numrowsaffected

asint

output

asbegin

select

*from

hr.employees

where empid=

@empid

;

set@numrowsaffected

=@@rowcount; --

賦值,也可以使用select賦值

endgo

呼叫:

--

3,帶輸入和輸出引數儲存過程的呼叫

declare

@nums

asint

;exec usp_procdemowithinputoutputparam @empid

=5,@numrowsaffected

=@nums

output;

select

@nums

as nums;

結果:例如,以下儲存過程接受@empid即職員id作為輸入引數,然後判斷職員表中是否存在該職員的記錄,如果存在則返回1,否則返回0.

建立儲存過程**:

if

object_id('

usp_procdemowithreturnvalue

','p

') is

notnull

drop

proc

usp_procdemowithreturnvalue;

go--

4,帶返回值

create

proc

usp_procdemowithreturnvalue

@empid

asint

asbegin

ifexists (select

*from hr.employees where empid=

@empid

)

return

1else

return

0; --

也可以宣告乙個變數,然後返回這個變數

endgo

呼叫:

--

4,帶返回值儲存過程的呼叫

declare

@status

asint

=0; --

給預設值為0

exec

@status

= dbo.usp_procdemowithreturnvalue @empid=5

--int

select

@status

as thestatus;

結果:

儲存過程基礎

建立輸入引數儲存過程 create or replace procedure lyr3 name varchar2,age number is begin insert into student values sys guid name,age end 建立輸出儲存過程 create procedu...

基礎 儲存過程

github mysql 5.0開始支援儲存過程,儲存過程是存在資料庫中的一段sql集合,呼叫儲存過程可以減少很多任務作量,減少資料在資料庫和應用伺服器上的傳輸,對於提高資料處理的效率,同時注意,儲存過程沒有or replace的關鍵字,mysql的儲存過程引數包括 in,out,inout 三種模...

儲存過程基礎

儲存過程基礎語法 1.1 基本結構 create or replace procedure 儲存過程名字 引數1 in number,引數2 in number as 變數1 integer 0 變數2 date begin end 1.2 select into statement 將select...