存儲過程 返回值 procedure return values


存儲過程有三種返回:
1. 用return返回int型數據
2. 用返回參數返回結果,可以返回各種數據類型(通過游標來循環查詢結果每一行)
3. 直接在存儲過程中用select返回結果集,可以是任意的select語句,這意味着是任意的返回結果集

 

 

例子:1

use tempdb;

create procedure test1
as
begin
if 1=1
return 1
else 
return 2
end

declare @index int
exec @index= test1
select @index

drop procedure test1

 

如下圖,得到返回值 1

例子:2

use tempdb;

create procedure test1
(@paramater varchar(20) output)
as
begin
if 1=1
set @paramater='01'
else 
set @paramater='02'
end

declare @index varchar(10)
exec test1 @index output
select @index as [index]

drop procedure test1

 

例子:3

 1 use tempdb;
 2 
 3 create procedure test1
 4 
 5 as
 6 begin
 7     declare @paramater varchar(21)
 8     set @paramater='01'
 9     select @paramater
10 end
11 
12 exec test1
13 
14 /*declare @index varchar(10)
15 exec @index=test1
16 select  @index as [index]*/
17 
18 drop procedure test1

以上是3種調用的返回方式。

 

如果我在數據庫,使用"執行存儲過程"的方式執行存儲過程,我們會活動另外一種結果。

為什么一個存儲過會有兩個結果呢。

我猜測用系統的存儲過程可能會有2個值,1、結果集;2、return value.

帶着猜測,修改了存儲過程,然后得到了下圖的答案。

 

帶着解決問題的后愉悅的心情,再說一個小問題。

return只能返回整數,就算varchar的參數,也會改成整數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM