--1、调用帮助系统来查找系统存储过程或函数来显示SQL Server的版本号及当前系统时间。(提示:到帮助中根据关键字等查询到对应的函数或存储过程来完成任务)代码截图和运行结果截图如下。
--3、将Course表上增加一个字段seleNUM,并编写存储过程:传入学号s_id和课程号--course_id后,完成在S_C表中插入相应的选课记录,并在Course表中对应课程的--seleNUM加1。调用该存储过程,
--测试执行结果。代码截图和运行结果截图如下
--4、创建一个存储过程,参数是学号s_id,输出信息是指定学号多对应的姓名、课程名称、成绩。
--运行时若没有指定学号,则提示“请输入学号”,若学号不存在,则提示“学号不存在”。
--5、创建一个存储过程Pro_Accum,利用while循环实现计算从1到输入参数n间各整数的累加计算功能,
--计算结果存入输出参数sum。并通过T-SQL调用定义的存储过程,计算1+2+…+100的累加和,并输出。
--1、调用帮助系统来查找系统存储过程或函数来显示SQL Server的版本号及当前系统时间。(提示:到帮助中根据关键字等查询到对应的函数或存储过程来完成任务)代码截图和运行结果截图如下。
select @@VERSION '版本号' ,GETDATE() '系统时间'
--2、创建一个存储过程,要求查询每位学生所选课程的平均成绩、最高成绩。调用该存储过程,
--测试执行结果。代码截图和运行结果截图如下。
create procedure PD1_selectresult
as
begin
select s_id 学号,avg(result) 平均成绩,max(result) 最高成绩
from s_c
group by s_id,course_id
end
exec PD1_selectresult
--3、将Course表上增加一个字段seleNUM,并编写存储过程:传入学号s_id和课程号--course_id后,完成在S_C表中插入相应的选课记录,并在Course表中对应课程的--seleNUM加1。调用该存储过程,
--测试执行结果。代码截图和运行结果截图如下
alter table course
add seleNUM int
select * from course
update course
set seleNUM =(select count(s_id)
from s_c
where s_c.course_id=course.course_id)
select * from course
create procedure PD2_course_record
@s_id char(10),
@course_id char(10)
as
begin
insert into s_c (s_id,course_id)
values(@s_id,@course_id)
update course
set seleNUM =seleNUM +1
where course_id=@course_id
end
select * from s_c
exec PD2_course_record '2016010101','0007'
select * from s_c
select * from course
--4、创建一个存储过程,参数是学号s_id,输出信息是指定学号多对应的姓名、课程名称、成绩。
--运行时若没有指定学号,则提示“请输入学号”,若学号不存在,则提示“学号不存在”。
create procedure PD2_print_result
@s_id char(10)=null
as
begin
if @s_id is NULL
print '请输入学号'
else
begin
if exists(select s_id from s_c where s_id = @s_id )
begin
select student.s_id '学号', s_name '姓名',course.course_id '课程名称',result '成绩'
from student,course,s_c
where student.s_id =s_c.s_id and s_c.course_id =course.course_id and student.s_id =@s_id
end
else
print'学号不存在'
end
end
exec PD2_print_result
exec PD2_print_result '2016010101'
exec PD2_print_result '2016010109'
--5、创建一个存储过程Pro_Accum,利用while循环实现计算从1到输入参数n间各整数的累加计算功能,
--计算结果存入输出参数sum。并通过T-SQL调用定义的存储过程,计算1+2+…+100的累加和,并输出。
create procedure Pro_Accum
@n int
as
begin
declare @sum int
declare @i int
set @sum=0
set @i=1
while(@i<=@n)
begin
set @sum = @sum+@i
set @i=@i+1
end
print @sum
end
exec Pro_Accum '100'