sql >> Databáze >  >> RDS >> Sqlserver

Jak vrátit výstup uložené procedury do proměnné na serveru SQL

To závisí na povaze informací, které chcete vrátit.

Pokud se jedná o hodnotu jednoho celého čísla, můžete použít return prohlášení

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

Máte-li jinou než celočíselnou hodnotu nebo několik skalárních hodnot, můžete použít výstupní parametry

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

Pokud chcete vrátit datovou sadu, můžete použít insert exec

create proc myproc
as 
begin
     select name from sysobjects
end
go

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

Můžete dokonce vrátit kurzor, ale to je prostě hrozné, takže nebudu uvádět příklad :)



  1. SQL k nalezení prvního nečíselného znaku v řetězci

  2. Jak Round() funguje v SQLite

  3. Připojení Delphi na Linuxu k SQL Serveru

  4. Prozkoumání MySQL Binlog Server – Ripple