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#中的方法返回值類型,在方法定義時就已經定好了
