2024年6月5日发(作者:)
实验报告
(201 —201 学年 第 学期)
课程名称 数据库原理与应用
实验名称
实验八
存储过程和游标
专 业
年 级
学号 姓名
指导教师
实验日期
实验目的与要求:
掌握存储过程的概念、作用和创建方法
学会在存储过程中使用游标。
实验设备(环境):
PC机、SQL server2008
实验内容:
(1)创建一存储过程,根据学生学号查询某学生选修了的课程的名称及成绩,学号为参数输
入。
(2)创建一存储过程,用来传入的参数:班级号,判断该班级中是否已有学生存在。若有,
存储过程返回1,若没有,存储过程返回0。
(3)展开STUDENT数据库,鼠标单击“存储过程”,选择右边列表中刚刚建立的存储过程名,
双击或右击之,出现属性对话框,可以查看存储过程的定义语句,必要时可进行修改。
(4)试运行存储过程,并验证其语句的正确性。
(5)验证下列程序段的正确性,必要时进行修改,并认真体会游标的使用方法
CREATE PROCEDURE proc_clage
AS
declare @clno char(5);
declare @clage smallint;
declare cur_clage cursor for
while @@fetch_status = 0
begin
fetch next from cur_clage into @clno,@clage;
update class
set clage = @clage
select clno, avg(convert(numeric(5,2), sage)) clage
where clno = @clno;
from student
group by clno;
open cur_clage;
end
close cur_clage;
deallocate cur_clage;
实验程序及结果:
【实验报告内容】
写出各题中各项操作的T-sql语句以及运行结果的截图展示。
(1)
use 教学
go
create procedure grade
@number char(7)
as
select cname ,grade
from course,sc
where = and sno=@number
Go
(2)use 教学
go
create procedure nianji
@cnumber char(12)
as
if ((select sno
from student
where sdept=@cnumber)>0) print '1'
else print '0'
(3)
(4)
execute nianji '13级'
(5)
use [0531]
go
alter table class
add clage2 smallint
use [0531]
go
create procedure proc_clage3
as
declare @clno char(8)
declare @clage smallint
declare cur_clage cursor for
select clno,avg(2016-sbirvear) as clage
from student
group by clno
open cur_clage
while @@FETCH_STATUS = 0
begin
fetch next from cur_clage into @clno,@clage
update Class
set clage = @clage
where Clno = @clno
end
close cur_clage
deallocate cur_clage
use [0531]
go
exec proc_clage1
实验总结(包括过程总结、心得体会及实验改进意见等):
在SQL中创建储存过程时,用户只能在当前数据中创建存储过程,数据库
的拥有者有默认的创建权限,权限也可以转让给其他用户。新建储存过程
的名称必须符合标示符规则,且对于数据库及其所有者必须唯一;用户定
义的存储过程只能在当前数据库中创建,但是临时存储过程通常是在
tempdb数据库中创建的;存储过程最大不能超过128MB;在一条T-SQL语
句中CREATE PROCEDURE不能与其他T-SQL语句一起使用;在修改存储过
程时语句中的参数与CREATE PROCEDURE语句中的参数相同。
指导教师评语:
成绩评定
教师签字
备注:
注:1、报告内的项目或设置,可根据实际情况加以补充和调整
2
、教师批改学生实验报告应在学生提交实验报告10日内


发布评论