返回值
儲存過程的返回值
使用 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 ...