儲存過程 返回值

2021-07-04 20:06:11 字數 1392 閱讀 5018

返回值

儲存過程的返回值

使用 return 語句指定儲存過程的返回**。

如果返回值在-1到-99之間,表示沒有成功執行,可以通過判斷返回值來進行相應的處理。

可以用return語句將大於0或者小於-99的整數作為自定義返回值,來表示不同的執行結果。

典型**

declare @result int

execute @result=my_pro

【例】建立儲存過程,根據讀者證號獲取已經還回圖書的冊數,並使用自定義返回值標識執行狀態。自定義返回值的含義如下:

0 成功執行。

1 未指定所需引數值。

2 指定引數值無效。

3 獲取借閱歷史資料時出錯。

**如下

create procedure usp_get_returneditemcount

@patronid varchar(20) = null,

@count int output

asbegin

set nocount on;

if @patronid is null  return (1)

else

begin

-- 確認有該讀者證號

if (select count (*) from patron

where patronid=@patronid)= 0

return (2)

endselect @count= count(*)  from lend

where patronid = @patronid

if @@error <> 0

return (3)

else

return (0)

end執行**

declare @patronid varchar(20),@ncount int,@nrtn int  --宣告變數

select @patronid ='t0101'     --給變數賦值

execute @nrtn=usp_get_ returneditemcount @patronid,

@ncount output;

if @nrtn = 0    --檢查返回值

begin

print '執行成功!'

print '您已經歸還' + convert(varchar(10),@ncount)+'冊圖書!'

endelse if @nrtn = 1

print '必須輸入讀者證號.'

else if @nrtn = 2

print '無此讀者.'

else if @nrtn = 3

print '獲取資料出錯.'

else

print '其他錯誤'

儲存過程返回值

alter procedure dbo.spdelstudentbyid id int,result int output parameter1 int 5,parameter2 datatype output asset nocount on 不返回計數當 set nocount 為 on 時,不...

SQL儲存過程返回值

先靠一下自己。當我做多了oracle時,我就忘了sql的儲存過程可以返回資料集這個事實了。create procedure test t1 int,t2 nvarchar 200 out asset t2 這個是輸出引數 go呼叫 declare out t2 nvarchar 200 exec t...

C 呼叫儲存過程返回值

c 源 1 2 校驗使用者 3 4 使用者資訊 5 6public static intverifyuser clsuser user 7 user.username,user.password 執行的t sql串 10sqlcommand scmd new sqlcommand sql,conn ...