sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man returnerar utdata från lagrad procedur till en variabel i sql-server

Det beror på vilken typ av information du vill returnera.

Om det är ett enstaka heltalsvärde kan du använda return uttalande

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

Om du har ett icke-heltalsvärde, eller ett antal skalära värden, kan du använda utdataparametrar

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

Om du vill returnera en datauppsättning kan du använda 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 till och med returnera en markör men det är bara hemskt så jag ska inte ge ett exempel :)



  1. Är det möjligt att använda `SqlDbType.Structured` för att skicka tabellvärderade parametrar i NHibernate?

  2. Verktyg för att generera databastabelldiagram med PostgreSQL?

  3. Skaffa ett föräldrar + barnträd med pg-löfte

  4. Hur ELT() fungerar i MariaDB