Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment renvoyer la sortie d'une procédure stockée dans une variable sur le serveur SQL

Cela dépend de la nature des informations que vous souhaitez retourner.

S'il s'agit d'une seule valeur entière, vous pouvez utiliser le return déclaration

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

Si vous avez une valeur non entière ou un certain nombre de valeurs scalaires, vous pouvez utiliser des paramètres de sortie

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

Si vous souhaitez renvoyer un ensemble de données, vous pouvez utiliser insert exec

create proc myproc
as 
begin
     select name from sysobjects
end
go

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

Vous pouvez même retourner un curseur mais c'est juste horrible donc je ne donnerai pas d'exemple :)