それはあなたが返したい情報の性質に依存します。
単一の整数値の場合は、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
カーソルを返すこともできますが、それは恐ろしいので、例を挙げません:)