【SQL Server数据库】存储过程的使用

发布于:2024-06-30 ⋅ 阅读:(16) ⋅ 点赞:(0)

目录

一、要求

1.创建一个存储过程 Proc_Course,查看“0108”号课程的选修情况,包括学生学号、姓名和成绩,然后执行该过程

2.创建一个存储过程 Proc_SC1,通过学生学号来查询学生选修情况,默认查询学号为 “00001”的选修情况,包括学生学号、姓名和成绩。

3.修改并调用上面的存储过程,求出学号为“000503003” 的学生不及格的选修情况。

4.编写存储过程 Proc_jiecheng,求 n!。并执行此存储过程,求 5!

5.删除存储过程 Proc_jiecheng


一、要求

1.创建一个存储过程 Proc_Course,查看“0108”号课程的选修情况,包括学生学号、姓名和成绩,然后执行该过程

use school
go
create procedure proc_course
as
select student.stu_id, stu_name, grade
    from student join studentgrade 
        on student.stu_id = studentgrade.stu_id
    where course_id = '0108'
exec proc_course

2.创建一个存储过程 Proc_SC1,通过学生学号来查询学生选修情况,默认查询学号为 “00001”的选修情况,包括学生学号、姓名和成绩。

use school
go
create proc proc_sc1
@sno varchar(9) = '000001'
as
    select student.stu_id, stu_name, grade
        from student join studentgrade 
            on student.stu_id = studentgrade.stu_id
    where student.stu_id = @sno
exec proc_sc1 @sno = '000503001'

3.修改并调用上面的存储过程,求出学号为“000503003” 的学生不及格的选修情况。

use school
go
alter proc proc_sc1
@sno varchar(9) = '000001',
--注意:当变量有默认值时,不能用 declare 声明变量。
@markpass int
as
    select student.stu_id, stu_name, grade
        from student join studentgrade 
            on student.stu_id = studentgrade.stu_id
    where student.stu_id = @sno and grade < @markpass
exec proc_sc1 @sno='000503003', @markpass = 60

4.编写存储过程 Proc_jiecheng,求 n!。并执行此存储过程,求 5!

create proc proc_jiecheng
    @n int
--此处声明的为输入输出参数
as
declare @i int
--此处声明的为存储过程内部使用的变量
declare @sum bigint
    set @i = 1
    set @sum = 1
while @i <= @n

begin
    set @sum = @sum * @i
    set @i = @i + 1
end
print @sum
exec proc_jiecheng @n = 5

5.删除存储过程 Proc_jiecheng

drop proc proc_jiecheng