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

Sådan returneres output fra lagret procedure til en variabel i sql-server

Det afhænger af arten af ​​de oplysninger, du vil returnere.

Hvis det er en enkelt heltalsværdi, kan du bruge return erklæring

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

Hvis du har en ikke-heltalsværdi eller et antal skalarværdier, kan du bruge outputparametre

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

Hvis du vil returnere et datasæt, kan du bruge insert exec

create proc myproc
as 
begin
     select name from sysobjects
end
go

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

Du kan endda returnere en markør, men det er bare forfærdeligt, så jeg vil ikke give et eksempel :)



  1. SQL SERVER – Et trick til at håndtere dynamisk SQL for at undgå SQL-injektionsangreb?

  2. Sådan beregnes ugentlige aktive brugere (WAU) i MySQL

  3. DROP FUNKTION uden at kende antallet/typen af ​​parametre?

  4. Serienumre pr. gruppe af rækker for sammensat nøgle