当前位置: 首页 > article >正文

【SQL server】教材数据库(7)

根据教材数据库(1)定义一个存储过程,完成下面功能:

入口参数:教材编号

1 显示教材信息

2 如果没人买,删除该教材记录

3 如果价格低于10元,涨价至10元。

CREATE PROCEDURE ProcessTextbook
    @TextbookID INT
AS
BEGIN
    SET NOCOUNT ON;

    -- 1. 显示教材信息
    SELECT 
        book.id AS 教材编号,
        book.title,
        book.c_id,
        book.price,
        publish.name AS 出版社名称,
        publish.address AS 出版社地址
    FROM
        book
    LEFT JOIN
        publish ON book.c_id = publish.id
    WHERE
        book.id = @TextbookID;

    -- 2. 如果没人买,删除该教材记录
    DECLARE @OrderCount INT;

    SELECT @OrderCount = COUNT(*)
    FROM orders
    WHERE b_id = @TextbookID;

    IF @OrderCount = 0
    BEGIN
        DELETE FROM book WHERE id = @TextbookID;
        PRINT '教材记录已删除,因为没有人购买。';
    END
    ELSE
    BEGIN
        PRINT '教材已被购买,不执行删除操作。';
    END

    -- 3. 如果价格低于10元,涨价至10元
    UPDATE book
    SET price = 10
    WHERE id = @TextbookID AND price < 10;

    PRINT '教材价格已调整。';

END;

测试语句:

INSERT INTO publish (id, name, address) VALUES (3, '出版社A', '地址A');
INSERT INTO book (id, title, c_id, price) VALUES (3, '教材A', 3, 5);
INSERT INTO book (id, title, c_id, price) VALUES (4, '教材B', 3, 15);

INSERT INTO orders (s_id, b_id) VALUES (2201331, 3);
EXEC ProcessTextbook @TextbookID = 3;
EXEC ProcessTextbook @TextbookID = 4;

教材3为5元,执行后价格变为10元

教材有人订购,显示教材信息


http://www.kler.cn/a/465057.html

相关文章:

  • 基于springboot的课程作业管理系统(源码+数据库+文档)
  • HP 电脑开机黑屏 | 故障判断 | BIOS 恢复 | BIOS 升级
  • ScheduledExecutorService详解
  • ETCD渗透利用指南
  • GitHub Fork 和 Clone 的深度指南:操作解析与 Pull Request 完整流程20241231
  • 给vscode的新项目选择虚拟环境
  • JAVA-制作小游戏期末实训
  • Python PySide + SQLite3 开发的 《️ POS点销管理系统》可用初型
  • Postman[8] 断言
  • edeg插件/扩展推荐:助力生活工作
  • 【视频笔记】基于PyTorch从零构建多模态(视觉)大模型 by Umar Jamil【持续更新】
  • CM3/CM4时钟系统
  • STM32-笔记28-蓝牙模块
  • SQL 总结
  • 125个Docker的常用命令
  • 数据库-MySQL-limit优化(全面 易理解)
  • 小米15震撼发布:手机吊起一人一椅,创新极限测试
  • 基于微信小程序的面部动作检测
  • 百度二面,MySQL 怎么做权重搜索?
  • SQL 中的 EXISTS
  • 开源自荐 - NoteGen 一款专注于记录和写作的跨端 AI 笔记
  • Web3的核心理念:去中心化如何改变互联网结构
  • Linux和ROS(Robot Operating System)在底层实现上的差异
  • 记一次 dockerfile 的循环依赖错误
  • 【three.js】场景搭建
  • [极客大挑战 2019]Secret File