SQL Server输出参数

问题描述:

环境是SQL Server 2005

有没有办法在获取存储过程的输出参数时使用命名参数?目前,我对输出参数的了解非常有限。看起来我必须按照存储过程中的声明来使用它们。即如果我做了exec test @rich output,@bob output这个电话就会爆炸。我怎样才能让订单成为任意的?谢谢SQL Server输出参数

create procedure test 
    @ID as INT output 
,@mark as char(20) output 
as 

    select @ID = 5,@mark='test' 
go 
declare @bob as int 
declare @rich as char(20) 
exec test @bob output, @rich output 
select @bob,@rich 

EXEC test @ID = @bob OUTPUT, @mark = @rich OUTPUT 

或者,如果你喜欢

EXEC test @mark = @rich OUTPUT, @ID = @bob OUTPUT 

declare @bob as int 
declare @rich as char(20) 
exec test 
     @mark = @rich output, 
     @id = @bob output 
select @bob,@rich 
+0

的三个答案我目前看到的是等效的,但把每个参数在一个单独的线上这是一个更清晰的答案。 – 2011-04-28 14:18:40

,而不是positional使用named parameters

declare @bob as int 
declare @rich as char(20) 


exec test @ID = @bob output, @mark = @rich output 
select @bob,@rich 

exec test @mark = @rich OUTPUT,@ID = @bob output 
select @bob,@rich