SQL中存儲過程out與output有什么不


以下是腳本內容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
--SQLQuery Create By Faywool
 
 
 
 
create  proc Proc_OutPutTest --創建
@numA  int , --numA為存儲過程的參數
@numB  int , --numB為另一參數
@numReturn  int  output --此為Output,也就是存儲過程的返回值
as
begin
if(@numA>@numB)
     set  @numReturn=@numA
else
     set  @numReturn=@numB  --A>B的時候返回A,否則返回B
end
 
go
 
 
declare  @numReceive  int  --先聲明一個變量用來接收存儲過程的返回值
exec  Proc_OutPutTest 1,2, @numReceive  output
--調用存儲過程並用@numReturn接收存儲過程的返回值
select  @numReceive --將會返回(1,2)中較大的數字:2
 
go
 
create  proc Proc_OutTest --新建存儲過程
@numC  int , --參數C
@numD  int , --參數D
@numE  int  out --參數E用來返回
as
begin 
     if(@numC>@numD)
         set  @numE=@numC --如果C>D,將C賦值給E
     else 
         set  @numE=@numD --否則將D賦值給E
end
  
go
 
 
declare  @numOutReceive  int --聲明一個變量
set  @numOutReceive=10000 --將變量賦值為10000
select  @numOutReceive --變量變為10000
exec  Proc_OutTest 1,2, @numOutReceive  out --將(1,2,@numOutReceive)三個數字傳入存儲過程
select  @numOutReceive --再看變量就變成2了
 
 
 
 
--總結:
 
--Out是參數,傳進、傳出,缺一不可,在存儲過程定義的時候一定要有out標識,
--在調用該存儲過程的時候也要有out標識
 
 
--OutPut則是相當於存儲過程的返回值
--不用傳進,也不能傳進
--它是在存儲過程中定義,並且輸出的
 
--   一句話:Out相當於C#中的ref參數(傳進、傳出缺一不可),而且傳進傳出的時候都要標識為ref
--           OutPut則為C#中的方法返回值類型,在方法定義時就已經定好了


免責聲明!

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



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