我的编程空间,编程开发者的网络收藏夹
学习永远不晚

sql中触发器如何实现库存功能

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

sql中触发器如何实现库存功能

这篇文章主要为大家展示了“sql中触发器如何实现库存功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“sql中触发器如何实现库存功能”这篇文章吧。

表1、入库表      
  列:入库单号   零件号    入库数量  
表2、出库表      
  列:出库单号   零件号    出库数量   
表3:零件信息表
  列:零件号`````` 库存数量  
我想实现每一次的入库时,"零件信息表"里的"库存数量"要加上"入库数量",出库时,”库存数量“要减去”出库数量“,就是实现更新库存应该怎么做?写触发器吗,触发器该怎么写?还是有什么更好的方法,请高手帮助我,最好有详细代码,谢谢!

最佳答案

一般来说库存操作单据和库存结余的联系都是通过客户端软件实现的,就是在入库单的审核操作按钮处加入SQL代码,如果你的不是这样,也可以通过触发器来实现,但是完善的流程应该包括在插入、修改和删除时都保证对零件信息表的更改。

1、CREATE TRIGGER Tr_入库表 ON 入库表
after insert,update,delete
AS
begin
  update a set a.库存数量=a.库存数量 +b.入库数量
  from  零件信息表 a,(select 零件号,sum(入库数量) 入库数量 from inserted group by 零件号 ) b  --如果每次插入时零件号不重复,则不必聚合
  where a.零件号 =b.零件号;
  go
  update a set a.库存数量=a.库存数量 -b.入库数量
  from  零件信息表 a,(select 零件号,sum(入库数量) 入库数量 from deleted group by 零件号 ) b  --如果每次插入时零件号不重复,则不必聚合
  where a.零件号 =b.零件号;
  go
end

2、CREATE TRIGGER Tr_出库表 ON 出库表
after insert,update,delete
AS
begin
  update a set a.库存数量=a.库存数量 -b.出库数量
  from  零件信息表 a,(select 零件号,sum(出库数量) 出库数量 from inserted group by 零件号 ) b  --如果每次插入时零件号不重复,则不必聚合
  where a.零件号 =b.零件号;
  go
  update a set a.库存数量=a.库存数量 +b.出库数量
  from  零件信息表 a,(select 零件号,sum(出库数量) 出库数量 from deleted group by 零件号 ) b  --如果每次插入时零件号不重复,则不必聚合
  where a.零件号 =b.零件号;
  go
end

以上是“sql中触发器如何实现库存功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

sql中触发器如何实现库存功能

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sql数据库触发器如何写

编写SQL数据库触发器可以使用以下语法:CREATE TRIGGER trigger_name{BEFORE | AFTER} {INSERT | UPDATE | DELETE}ON table_name[FOR EACH ROW
2023-10-24

oracle触发器怎么实现自增功能

要实现自增功能,可以通过在触发器中使用序列来实现自增的效果。以下是一个示例代码:CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1;CREATE OR REPLACE TRIGGER my
oracle触发器怎么实现自增功能
2024-04-09

MySQL使用触发器如何实现CHECK检查约束的功能

MySQL触发器可实现与CHECK检查约束类似的功能,限制数据插入和更新。创建插入和更新触发器,在插入或更新前检查数据是否满足条件。如果条件不满足,则回滚操作并返回错误消息。触发器提供灵活性、可重用性和可调试性,但可能存在性能开销、维护复杂性和并发问题。对于简单的检查条件,明确定义检查约束更有效率。
MySQL使用触发器如何实现CHECK检查约束的功能
2024-04-02

Android如何实现多点触控功能

本篇内容介绍了“Android如何实现多点触控功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用了Android的系统API实现了多点触
2023-06-30

PyQt5 PySide2触摸测试功能如何实现

这篇文章主要介绍“PyQt5 PySide2触摸测试功能如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PyQt5 PySide2触摸测试功能如何实现”文章能帮助大家解决问题。一、前言该测试功
2023-07-05

如何在Oracle数据库中使用PL/SQL编写存储过程和触发器

在Oracle数据库中使用PL/SQL编写存储过程和触发器,可以按照以下步骤进行操作:使用SQL Developer或者其他Oracle数据库管理工具连接到Oracle数据库。创建一个新的PL/SQL存储过程或触发器。在SQL Develo
如何在Oracle数据库中使用PL/SQL编写存储过程和触发器
2024-03-02

AndoridSQLite数据库开发中如何添加触发器

AndoridSQLite数据库开发中如何添加触发器,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。AndoridSQLite数据库开发添加触发器触发器(TRIG
2023-06-04

如何实现MySQL中删除触发器的语句?

如何实现MySQL中删除触发器的语句?在MySQL数据库中,触发器(Trigger)是一种与表相关联的特殊类型的存储过程,它能在表发生特定的操作时被自动触发执行。MySQL提供了创建和删除触发器的语法,通过删除已存在的触发器,我们可以灵活地
如何实现MySQL中删除触发器的语句?
2023-11-08

触发器中如何实现复杂的条件组合

在数据库中,触发器是一种自动执行的操作,当对某个表进行插入、更新或删除操作时,它将自动执行定义在触发器中的代码。要实现复杂的条件组合,可以使用逻辑运算符(如AND、OR)将多个条件连接起来。以下是一个简单的示例,说明如何在触发器中使用复杂
触发器中如何实现复杂的条件组合
2024-09-26

编程热搜

目录