视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
sql实验报告12
2025-10-02 19:15:56 责编:小OO
文档
闽 南 师 范 大 学

实 验 报 告

班  级                 学号             姓名                 成绩         

同组人                                               实验日期           

课程名称:MS SQL程序设计

实验题目:存储过程
实验目的与要求1.掌握存储过程基本概念和功能。

2.掌握创建、管理存储过程的方法。

实验环境的配置第 1 页

PC 兼容机。Window xp 以上操作系统,SQL Server 2005数据库管理系统

实验内容与具体步骤闽 南 师 大 实 验 报 告

1.利用T-SQL语句创建一个带有参数的存储过程ProcInsert,向score表中插入一条记录,并查询该学生的姓名、选修的所有课程名称,平时成绩和期末成绩。创建完后调用该存储过程(分别使用按参数名传递参数值和按位传递参数值的方法调用)。

create proc ProcInsert 

(@studentno nchar(10),@courseno nchar(6),@usually numeric(6,2)=null,@final numeric(6,2)=null)

as

insert into dbo.score(studentno, courseno, usually, final) 

values(@studentno,@courseno,@usually,@final)

select sname,cname,usually,final from score join student on score.studentno=student.studentno

join course on score.courseno=course.courseno

where score.studentno=@studentno

按位传递

exec ProcInsert '0822111208','c08123',80,90

按参数名传递

exec ProcInsert @courseno='c08171',@studentno='0822111208',@final=70,@usually=80

2.利用T-SQL语句创建一个带有参数的存储过程P_classnum,要求能够根据用户给定的班级号,统计该班的人数,并将人数输出变量返回给用户。

创建完后调用该存储过程(分别使用按参数名传递参数值和按位传递参数值的方法调用)。

create proc P_classnum 

(@classno nchar(10),@count int output)

as

select @count=COUNT(*) from student where classno=@classno

按参数名传递

declare @count1 int 

exec P_classnum @count=@count1 output,@classno='080601'

select @count1 

按位传递

declare @count2 int 

exec P_classnum '080601',@count2 output

select @count2 

3.利用T-SQL语句创建一个存储过程ProcAvg,查询指定班级指定课程的平均分。班级号和课程名称由输入参数给定,计算出的平均分通过输出参数返回。创建完后调用该存储过程(分别使用按参数名传递参数值和按位传递参数值的方法调用)。

create proc ProcAvg 

(@classno nchar(10),@cname nchar(20),@avgScore float output)

as

select @avgScore=avg(final) 

from score join student on score.studentno=student.studentno

join course on score.courseno=course.courseno 

where classno=@classno and cname=@cname

按位传递

declare @avg1 float 

exec ProcAvg '080601','c语言',@avg1 output

select @avg1 

   

按参数名传递

declare @avg2 float 

exec ProcAvg @avgScore=@avg2 output,@classno='080601',@cname='c语言'

select @avg2 

4.使用企业管理器或系统存储过程sp_helptext查看存储过程;使用企业管理器或重新命名存储过程sp_rename重命名存储过程;使用企业管理器或DROP procedure 命令删除存储过程。

sp_helptext ProcAvg

sp_rename ProcAvg,newProcAvg

drop procedure  newProcAvg

实验内容与具体步骤闽 南 师 大 实 验 报 告

第 3 页

实验结果及分析闽 南 师 大 实 验 报 告

第 4 页

注:如果填写内容超出表格,自行添加附页。下载本文
显示全文
专题