sql >> Database >  >> RDS >> Sqlserver

Hoe de uitvoer van de opgeslagen procedure terug te sturen naar een variabele in de sql-server

Dat hangt af van de aard van de informatie die u wilt retourneren.

Als het een enkele integere waarde is, kunt u de return . gebruiken verklaring

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

Als u een niet-gehele waarde heeft, of een aantal scalaire waarden, kunt u uitvoerparameters gebruiken

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

Als u een dataset wilt retourneren, kunt u insert exec . gebruiken

create proc myproc
as 
begin
     select name from sysobjects
end
go

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

Je kunt zelfs een cursor teruggeven, maar dat is gewoon afschuwelijk, dus ik zal geen voorbeeld geven :)



  1. MySQL Workbench-alternatieven - ClusterControl-configuratiebeheer

  2. IndexOf-functie in T-SQL

  3. 2 manieren om alle functies in MariaDB weer te geven

  4. Een gids voor het partitioneren van gegevens in PostgreSQL