Det afhænger af arten af de oplysninger, du vil returnere.
Hvis det er en enkelt heltalsværdi, kan du bruge return
erklæring
create proc myproc
as
begin
return 1
end
go
declare @i int
exec @i = myproc
Hvis du har en ikke-heltalsværdi eller et antal skalarværdier, kan du bruge outputparametre
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
Hvis du vil returnere et datasæt, kan du bruge insert exec
create proc myproc
as
begin
select name from sysobjects
end
go
declare @t table (name varchar(100))
insert @t (name)
exec myproc
Du kan endda returnere en markør, men det er bare forfærdeligt, så jeg vil ikke give et eksempel :)