MSSQL存储过程的用法简介

MSSQL存储过程的用法简介 
举例说明存储过程四种用法:   

一、带参数的存储过程

create proc pr_test
@a varchar(10),
@b varchar(20)
as
begin
select @a as a, @b as b
return;
end

—运行存储过程
exec pr_test @a=”
—由于没有传送参数@b所以系统会提示以下报错信息

过程或函数 ‘pr_test’ 需要参数 ‘@b’,但未提供该参数。

exec pr_test @a=”,@b=’c’
—-打印出a,b的结果


二、参数带默认值

alter proc pr_test
@a varchar(10),
@b varchar(20)=’5′ —b放入默认值
as
begin
select @a as a, @b as b
return;
end

—-
exec pr_test @a=’测试A’
exec pr_test @a=’测试A’,@b=’c’

—-运行效果如下所示:
sql存储过程执行效果

三、带返回值的存储过程

存储过程中需要有return返回相应的数值,然后我们调用存储过程时候,获取这个返回值就可以了
方式一
alter proc pr_test
@a varchar(10),
@b varchar(20)=’5′
as
begin
select @a as a, @b as b
return 123; ———只可以返回整型数据
end

declare @r varchar(50)
exec @r = pr_test @a=’23’,@b=’45’
select @r as [返回值]

方式二
alter proc pr_test
@c varchar(100)=” output
as
begin
set @c =’返回值测试’
end

运行效果:

declare @c varchar(50)
exec pr_test @c output
select @c as [返回值2]


四、存储过程中调用存储过程

create proc pr_test

@c varchar(100)=” output
as
begin

select ‘测试数据 ‘ as a
end

create proc pr_test2
as
begin
exec pr_test
select ‘c’ as ctest

declare @a table(e varchar(10))
insert into @a exec pr_test
select * from @a t
end

exec pr_test2