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 :)