4

Environment is SQL Server 2005

Is there a way to use named parameters when getting the output parameters of a stored proc? Currently, my knowledge of output parameters is very limited. It looks like I have to use them in order of their declaration in the stored proc. i.e., if I did exec test @rich output,@bob output the call would blow up. How can I have the order be arbitary? Thank you

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

3 Answers 3

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

Or, if you prefer

EXEC test @mark = @rich OUTPUT, @ID = @bob OUTPUT  
Sign up to request clarification or add additional context in comments.

Comments

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

1 Comment

The three answers I currently see are equivalent, but putting each parameter on a separate line makes it a clearer answer.
0

instead of positional use 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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.