存储过程中的output输出参数及return返回值参数问题
一个存储过程可以有多个输出参数 但是只能有一个返回值
通过下面的例子说明一下:使用的是puls示例数据库
alter proc get_info
(
@outvalue int output,
@firstname nvarchar(200)='a'
)
as
begin
declare @sql nvarchar(max)
begin
if(@firstname is not null)
begin
set @sql='select * from authors'
exec sp_executesql @sql
set @outvalue=2
return 2222;
end
else
begin
set @sql= 'select * from authors where au_fname like''%'+@firstname+'%'''
exec sp_executesql @sql
set @outvalue=4
return 4444;
end
end
end
通过在ms sql 编辑器中查询:
declare @outvalue int--定义输出参数
declare @returns int--定义返回值
exec @returns=get_info @outvalue output,@firstname='a'
select '输出值'=@outvalue
select '返回值'=@returns
得到下面结果:
OK了。