第18讲++存储过程
创建1个简单的存储过程p1,查询所有学生的学号、姓名、课程号和成绩信息,并按成绩降序排列。
create procedure p1 as select xsqk.学号,姓名,课程号,成绩 from xsqk, xs_kc where xsqk.学号=xs_kc.学号 order by 4 desc go exec p1 --执行存储过程
创建1个带有输入参数的存储过程p2,查询指定课程号(作为输入参数)的学生成绩信息。
create proc p2 @kch char(3)=‘101’ --有默认值的输入形参:接收外部传递的数据 as select * from xs_kc where 课程号= @kch go exec p2 --(1)使用默认值执行存储过程 exec p2 ‘102’ --(2)按位置传递参数 exec p2 @kch=‘103’ --(3)通过参数名传递参数
创建并执行带输入参数的存储过程p3,查询指定学号(作为输入参数)的学生姓名、性别和所选课程号。
create proc p3 @xh char(10) as select 姓名,性别,课程号 from xsqk , xs_kc where xsqk.学号=xs_kc.学号 and xsqk.学号= @xh go exec p3 ‘2012130101’ --(1)按位置传递参数 exec p3 @xh=‘2012130102‘ --(2)通过参数名传递参数 --注意:因输入参数没有默认值,所以不能用“exec p3”
创建1个带有输入参数和输出的存储过程p4,返回指定教师(作为输入参数)所授课程的课程号(作为输出参数)。
create proc p4 @skjs varchar(20), @kch char(3) output as select @kch=课程号 from kc where 授课教师=@skjs go declare @skjs varchar(20), @kch char(3) set @skjs='王颐' exec p_kch @skjs, @kch output print @skjs+'教师所授课程的课程号为:'+@kch