Выходные параметры SQL Server

#sql #sql-server #sql-server-2005

#sql #sql-сервер #sql-server-2005

Вопрос:

Среда — 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
  

Ответ №1:

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

Или, если вы предпочитаете

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

Ответ №2:

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

Комментарии:

1. Три ответа, которые я вижу в настоящее время, эквивалентны, но вывод каждого параметра в отдельную строку делает ответ более понятным.

Ответ №3:

вместо 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