Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como retornar a saída do procedimento armazenado em uma variável no sql server


Isso depende da natureza das informações que você deseja retornar.

Se for um único valor inteiro, você pode usar o return demonstração
 create proc myproc
 as 
 begin
     return 1
 end
 go
 declare @i int
 exec @i = myproc

Se você tiver um valor não inteiro ou vários valores escalares, poderá usar parâmetros de saída
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 você quiser retornar um conjunto de dados, você pode 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

Você pode até retornar um cursor, mas isso é horrível, então não darei um exemplo :)