/*===========================存储过程=================================*/
--不带参数的存储过程
create proc proc_one
as
select * from student
--带输出参数的存储过程
create proc proc_two(@sname varchar(20) output,@sno int=611101)
as
select @sname=sname from student where sno=@sno
--调用带输出参数的存储过程
declare @sno int,@sname varchar(20)
exec proc_two @sname output
select @sname
--例1 创建一个带参数的存储过程,返回一个标量
create proc sumP(@n int)
as
declare @sum int,@count int
set @sum=0
set @count=1
while @count<=@n
begin
set @sum=@sum+@count
set @count=@count+1
end
return @sum
--获取存储过程的返回值
declare @sum int
exec @sum=sumP 20 --调用存储过程给变量@sum赋值
select @sum
--例2 创建一个存储过程,返回一个表值,可以存储给一个表变量
create proc proc2(@s char(2))
as
select sno,sname from student where ssex='男'
--声明一个表变量,将返回结果插入到表变量
declare @test table(sno int,sname varchar(20))
insert into @test exec proc2 '女'
select * from @test