SQL Server输出参数

4

环境是SQL Server 2005。

在获取存储过程的输出参数时,有没有一种使用命名参数的方法?目前,我对输出参数的了解非常有限。看起来我必须按照它们在存储过程中的声明顺序使用它们。也就是说,如果我执行 exec test @rich output,@bob output,调用将会失败。如何让顺序任意呢?谢谢。

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个回答

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

或者,如果你更喜欢的话。
EXEC test @mark = @rich OUTPUT, @ID = @bob OUTPUT  

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

我目前看到的三个答案是等价的,但将每个参数放在单独的行上使其更清晰明了。 - Philip Kelley

0

使用命名参数代替位置参数

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接