首页 > 代码库 > 第18讲++存储过程

第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

技术分享

技术分享

技术分享

 

第18讲++存储过程