use 教学成绩管理数据库
go

--1.修改存储过错
alter procedure 某班某门课程成绩 
@班名 varchar(20),@课程名 nchar(16),  @人数 int output, 
@最高分 decimal(6,2) output, 
@最低分 decimal(6,2) output,
@平均分 decimal(6,2) output
as
begin
 select 学号,姓名,课程名称,分数
  from 教学成绩表视图
  where 课程名称 = @课程名 and 班级=@班名
  order by 分数 desc
 select @人数 = count(*), @最高分 = max(分数),
         @最低分 = min(分数), @平均分 = avg(分数)
  from 教学成绩表视图
  where 课程名称 = @课程名 and 班级=@班名
end
go

--2.调用存储过错
DECLARE @RC int
DECLARE @人数 int
DECLARE @最高分 decimal(6,2)
DECLARE @最低分 decimal(6,2)
DECLARE @平均分 decimal(6,2)
EXEC @RC = [dbo].[某班某门课程成绩] '03电子商务', '大学语文',
   @人数 OUTPUT , @最高分 OUTPUT , @最低分 OUTPUT , @平均分 OUTPUT 
print '人数=' + str(@人数,3,0) + '  最高分=' + str(@最高分,6,2) + 
   '   最低分=' + str(@最低分,6,2) + '  平均分=' + str(@平均分,6,2)
EXEC @RC = [dbo].[某班某门课程成绩] '03软件技术', '英语', 
   @人数 OUTPUT, @最高分 OUTPUT , @最低分 OUTPUT , @平均分 OUTPUT 
print '人数=' + str(@人数,3,0) + '  最高分=' + str(@最高分,6,2) +
   '  最低分=' + str(@最低分,6,2) + '  平均分=' + str(@平均分,6,2)
go

--3.删除存储过程
drop procedure 某班某门课程成绩
