Това зависи от естеството на информацията, която искате да върнете.
Ако е едно цяло число, можете да използвате return
изявление
create proc myproc
as
begin
return 1
end
go
declare @i int
exec @i = myproc
Ако имате стойност, която не е цяло число, или няколко скаларни стойности, можете да използвате изходни параметри
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
Ако искате да върнете набор от данни, можете да използвате insert exec
create proc myproc
as
begin
select name from sysobjects
end
go
declare @t table (name varchar(100))
insert @t (name)
exec myproc
Можете дори да върнете курсор, но това е просто ужасно, така че няма да давам пример :)