一、 创建带参数的存储过程
创建带参数的存储过程首先要在存储过程中声明该参数,每个存储过程参数都必须用唯一的名称进行定义。与T-SQL变量相同,参数名必须以@为前缀,并且遵从标识符规则。当用户不提供该参数的值时可以使用一个默认值来代替。
1.不带默认值的参数
创建一个参数不带默认值的存储过程,在调用该存储过程时,必须对存储过程中的所有参数进行赋值,如果有一个参数没有赋值,则无法调用该存储过程。例如:
use db_student
--创建存储过程
create procedure proc_group
@课程类别 varchar(20), --定义参数
@学分 int
as
select * from course
where 课程类别=@课程类别 and 学分>@学分
执行不带参数的存储过程就是:
use db_student
exec proc_group '歌曲',8
如果不按顺序赋值可以写成:
use db_student
exec proc_group @学分=8,@课程类别=‘篮球课’
2.带默认值的参数
在SQL中我们可以对字段进行默认值的约束,在存储过程中也可以建立使用默认值的参数。只要在参数的定义之后加上等号,并在等号后面写出默认值即可。
--创建存储过程
use db_student
create procedure proc_group
@课程类别 varchar(20)='体育课',
@学分 int=6
as
select * from course where 课程类别=@课程类别 and 学分>@学分
执行参数带默认值的存储过程
use db_student
exec proc_group @学分=8
3.带返回参数的存储过程
创建存储过程时,可以用output参数来创建一个带返回值的存储过程,例如:
@a int output
如果创建带返回参数的存储过程proc_group,那么SQL语句如下:
--创建带返回值的存储过程
create procedure proc_group
@课程类别 carchar(20),
@平均学分 int output --设置带返回值的参数
as
select @平均学分=avg(学分) from course where 课程类别=@课程类别