sql server 的 out 和output


sql中out與output

 
--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