#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