Dat hangt af van de aard van de informatie die u wilt retourneren.
Als het een enkele integere waarde is, kunt u de return
. gebruiken verklaring
create proc myproc
as
begin
return 1
end
go
declare @i int
exec @i = myproc
Als u een niet-gehele waarde heeft, of een aantal scalaire waarden, kunt u uitvoerparameters gebruiken
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
Als u een dataset wilt retourneren, kunt u insert exec
. gebruiken
create proc myproc
as
begin
select name from sysobjects
end
go
declare @t table (name varchar(100))
insert @t (name)
exec myproc
Je kunt zelfs een cursor teruggeven, maar dat is gewoon afschuwelijk, dus ik zal geen voorbeeld geven :)