¿Cuándo usaría un parámetro de salida frente a una variable de retorno, o viceversa? En el siguiente ejemplo simple, puedo lograr lo mismo usando cualquiera de los dos.Procedimiento almacenado, cuándo utilizar el parámetro de salida frente a la variable de retorno
Utilizando el parámetro de salida
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
Usando variable de retorno:
create proc dbo.TestReturn (@InValue int)
as
return @InValue
declare @x int
exec @x = TestReturn @InValue = 3
select @x
Como se puede ver, ambas hacen lo mismo. ¿Puede alguien mostrarme un ejemplo en el que la elección de un parámetro de salida frente a una variable de retorno suponga una diferencia?
Puede reconsiderar su segundo ejemplo, como lo es antes de realizar cualquier trabajo interesante;) –
Hace tanto trabajo como el primer ejemplo. Tenga en cuenta la falta de BEGIN/END: cada uno de esos procesos consta de una sola declaración. El segundo bloque en cada ejemplo llama al primer bloque. – Timbo