我想在SQL Server中执行存储过程,并将输出分配给变量(它返回一个值)?
最佳答案
这取决于您要返回的信息的性质。
如果是单个整数值,则可以使用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
您甚至可以返回一个游标,但这太可怕了,所以我不举一个例子:)