Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come restituire l'output della stored procedure in una variabile in SQL Server

Dipende dalla natura delle informazioni che vuoi restituire.

Se si tratta di un valore intero singolo, puoi utilizzare il return dichiarazione

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

Se hai un valore non intero o un numero di valori scalari, puoi utilizzare i parametri di output

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

Se desideri restituire un set di dati, puoi utilizzare insert exec

create proc myproc
as 
begin
     select name from sysobjects
end
go

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

Puoi anche restituire un cursore, ma è semplicemente orribile, quindi non farò un esempio :)