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 :)