首页 > 代码库 > 案例------存储过程
案例------存储过程
创建一个存储过程(insertResult)添加学生成绩,要求输入(学号,课程名,分数)
如果输入的学号不存在,则提示“学生基本信息表中不存在此学号,请检查后重新输入”
如果输入的课程不存在,则提示“还没有这门课程,请检查后重新输入”
如果该学生的专业中没有输入的课程,则提示“该学生的专业里面没有这门课”
判断输入的成绩是否是大于0,如果小于0则提示“你太狠了吧,竟然打负分!”
判断该学生的课程成绩是否已经存在,如果存在则提示“此学生的这门课程成绩已经录入了,请不要重复录入”
最后添加成功则提示“成绩添加成功”
CREATE PROCEDURE [dbo].[insertResult]
(
@nStudentNo int, ------------------------学号
@vchCourse varchar(32), ----------------课程
@nAchievement int -------------------------成绩
)
AS
SET NOCOUNT ON
--table_student_base_info为学生基本信息表,列student_no为学号,student_specialty为专业课名称,student_achievement为专业课成绩
--table_course为课程表, 列course_name为课程名
DECLARE @nCount int SET @nCount = 0
DECLARE @nSpecialty SET @nSpecialty = 0
DECLARE @nCourse SET @nCourse = 0
DECLARE @nExistAchievement SET @bIsMark = 0
--------------------------------------------------判断学号是否存在
SELECT
@nCountNo = COUNT(*)
FROM
table_student_base_info
WHERE
table_student_base_info.student_no = @nStudentNo
IF @nCount < 1
BEGIN
PRINT ‘学生基本信息表中不存在此学号,请检查后重新输入‘
RETURN
END
------------------------------------------------判断专业课及成绩
SELECT
@nSpecialty = COUNT(*),
@nExistAchievement = student_achievement
FROM
table_student_base_info
WHERE
table_student_base_info.student_specialty = @vchCourse
IF @nSpecialty < 1
BEGIN
PRINT ‘该学生的专业里面没有这门课‘
RETURN
END
IF @nExistAchievement >= 0
BEGIN
PRINT ‘此学生的这门课程成绩已经录入了,请不要重复录入‘
RETURN
END
------------------------------------------------判断指定课程
SELECT
@nCourse = course_name
FROM
table_course
WHERE
course_name = @vchCourse
IF @nCourse < 1
BEGIN
PRINT ‘还没有这门课程,请检查后重新输入‘
RETURN
END
----------------------------------------------成绩为负
IF @nAchievement < 0
BEGIN
PRINT ‘你太狠了吧,竟然打负分!‘
RETURN
END
----------------------------------------------录入成绩
UPDATE
table_student_base_info
SET
student_achievement = @nAchievement
WHERE
table_student_base_info.student_no = @nStudentNo
PRINT ‘成绩添加成功‘
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。