這一篇要總結的是儲存過程,包括儲存過程有哪幾種,如何建立,以及最後如何呼叫儲存過程。所以分為以下幾個方面進行總結。
1,不帶引數的儲存過程
2,帶輸入引數的儲存過程
3,帶輸入和輸出引數的儲存過程
4,帶返回值的儲存過程
例如,以下儲存過程返回employees表中所有職員的記錄。
儲存過程**:
usetsqlfundamentals2008;
goif
object_id('
usp_procdemonoparam
','p
') is
notnull
drop
proc
usp_procdemonoparam;
go--
1,不帶引數
create
proc
usp_procdemonoparam
asbegin
select
*from
hr.employees;
endgo
呼叫**:
usetsqlfundamentals2008;
go--
1,不帶引數儲存過程的呼叫
exec usp_procdemonoparam;
結果:可以看到,共返回了9條記錄。
例如,該儲存過程接受輸入引數@empid,然後返回這個職員的資訊。
建立儲存過程**:
ifobject_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作為輸入引數,然後返回該職員的資訊,同時返回**受影響行數作為輸出引數。
建立儲存過程**:
ifobject_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.
建立儲存過程**:
ifobject_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...