成绩单的sc
㈠ 创建一个存储过程,给定某学生学号,要求查询出该学生的姓名,所选课程名和成绩.(SQL SERVER)
/*创建存储过程*/
CREATE PROCEDURE proc_select--建立存储过程
@Sno char(10) output,--输入输出参数
@Sname varchar(20) out,--输出参数
@Cno char(4) out,--输出参数
@grade tinyint out--输出参数
AS
SELECT @Sname=Sname,@Sno=Student.Sno,@Cno=cno,@grade=grade --select里面写输出参数
FROM Student,SC --从学生表,选修表中查询
where @Sno=Student.Sno--where里面写输入参数
/*根据给定学号查询*/
CREATE PROC proc_lab4 --存储过程中含有游标
@Sno char(10)
as
declare @ssno char(10),@ssname char(20),@ccname char(20),@scg int--声明四个变量
declare cursor_s cursor--声明游标
for
select Student.Sno,Sname,Cname,grade
from Student,Course,SC--从三个表中选择学号、姓名、课程名、成绩
where Student.Sno=SC.Sno and Course.Cno=SC.Cno and Sname=@Sname;--连接
open cursor_s--打开游标
fetch next from cursor_s into @ssno,@ssname,@ccname,@scg
while @@fetch_status=0
begin
print @ssno+@ssname+@ccname+convert(char(10),@scg)
fetch next from cursor_s into @ssno,@ssname,@ccname,@scg
end
close cursor_s--关闭游标
deallocate cursor_s--释放游标
exec proc_lab4 '201215121'
--只带输入参数
CREATE PROC p2
@sno char(10)
as
select Student.Sno,Sname,Cname,grade
from Student,SC,Course
where Student.Sno=SC.Sno and SC.Cno=Course.Cno
and Sname=@sname
(1)成绩单的sc扩展阅读:
创建存储过程基本语法
create procere sp_name
@[参数名] [类型],@[参数名] [类型]
as
begin
.........
end
以上格式还可以简写成:
create proc sp_name
@[参数名] [类型],@[参数名] [类型]
as
begin
.........
end
/*注:“sp_name”为需要创建的存储过程的名字,该名字不可以以阿拉伯数字开头*/
㈡ 8.创建一个存储过程,查询某个学生某门课程的考试成绩(学生名和课程名为输入参数),要求显示姓名,课名和
create proc 取一个过程名 @学生名 char(数值),@课程名 char(数值)
as
select @学生名 @课程名 成绩名
from 该表名
where 该表学生名字段=@学生名 and 该表课程名字段=@课程名
go
exec 刚取得那个过程名 ‘随便取一个学生名验证’,‘随便取一个课程名验证’