sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo devolver la salida del procedimiento almacenado en una variable en el servidor sql

Eso depende de la naturaleza de la información que desea devolver.

Si es un valor entero único, puede usar el return declaración

 create proc myproc
 as 
 begin
     return 1
 end
 go
 declare @i int
 exec @i = myproc

Si tiene un valor no entero o una cantidad de valores escalares, puede usar parámetros de salida

create proc myproc
  @a int output,
  @b varchar(50) output
as
begin
  select @a = 1, @b='hello'
end
go
declare @i int, @j varchar(50)
exec myproc @i output, @j output

Si desea devolver un conjunto de datos, puede usar insert exec

create proc myproc
as 
begin
     select name from sysobjects
end
go

declare @t table (name varchar(100))
insert @t (name)
exec myproc

Incluso puedes devolver un cursor, pero eso es horrible, así que no daré un ejemplo :)