• 案例------存储过程


    创建一个存储过程(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 '成绩添加成功'
  • 相关阅读:
    Vue 静态资源文件下载 以pdf为例
    高德地图POI搜索
    矩阵转置(二维列表行列互换)
    列表动态填加元素
    关于判断值为None的处理
    第2章 小程序项目结构配置
    Python 基础编码风格
    Visual Studio — 模块计算机类型“x64”与目标计算机类型“x86”冲突
    Visual Studio — 无法解析的外部符号的几种可能
    Visual Studio — 包含目录、附加包含目录、库目录、附加库目录、附加依赖项之详解
  • 原文地址:https://www.cnblogs.com/liupengfei19940119/p/3709871.html
Copyright © 2020-2023  润新知