Когда бы вы использовали выходной параметр вместо возвращаемой переменной или наоборот? В следующем простом примере я могу добиться того же, используя любой из них.
Использование выходного параметра
create proc dbo.TestOutput (@InValue int, @OutValue int output)
as
set @OutValue = @InValue
declare @x int
exec TestOutput @InValue = 3, @OutValue = @x output
select @x
Использование возвращаемой переменной:
create proc dbo.TestReturn (@InValue int)
as
return @InValue
declare @x int
exec @x = TestReturn @InValue = 3
select @x
Как вы можете видеть, они оба делают одно и то же. Может ли кто-нибудь показать мне пример, в котором выбор выходного параметра и возвращаемой переменной будет иметь значение?