![]()
![]()
![]()
![]()
创建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
![]()
![]()
![]()