请教sql server中增减记录和总数相关联的问题

基洛夫级 2018-07-08 09:18:50
有两张表分别为eRecord和eAmcount
eRecord存储A加减的记录,eAmcount存储A的库存。假如我修改了eRecord记录(加了一条A增加的记录),eAmcount怎么才能自动修改。
...全文
107 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinger126 2018-07-09
  • 打赏
  • 举报
回复
不建议用触发器来做。用事务,或者存储过程。eRecord表增加或者修改记录时,判断eAmcount表是否存在记录,有就更新,没有就插入一条新记录。然后对比表eRecord和eAmcount的总记录,不一致就抛出错误回滚,一致就提交
二月十六 2018-07-09
  • 打赏
  • 举报
回复
楼主你用的是instead of insert,这样的不会再执行的insert操作,可以换成after insert
基洛夫级 2018-07-09
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
在表eRecord上建一个触发器,在修改数据的时候修改eAmcount表中对应的数据。

写完了

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER change_amount
ON record
instead of insert
AS
IF NOT EXISTS (
SELECT amount
FROM hardware
WHERE name IN (SELECT name FROM INSERTED)
)
BEGIN
--返回错误提示
RAISERROR('错误!库存表中不存在此物。',16,1)
--回滚事务
ROLLBACK
RETURN
END
DECLARE @name nchar(10)
SET @name = (SELECT name FROM INSERTED)

DECLARE @amount float
SET @amount = (SELECT amount FROM INSERTED)

DECLARE @outin int
SET @outin = (SELECT outin FROM INSERTED)
if(@outin=1)
UPDATE hardware
SET amount = amount + @amount
WHERE name = @name
else
UPDATE hardware
SET amount = amount - @amount
WHERE name = @name

总表hardware有变化,但是问题就是每次数据修改完后record(存储修改记录表)表没有存下任何数据
修改中
修改完
二月十六 2018-07-08
  • 打赏
  • 举报
回复
在表eRecord上建一个触发器,在修改数据的时候修改eAmcount表中对应的数据。
本课程根据讲师十多年在世界500强外企的生产环境SQL Serer数据库管理和项目实施经验倾心打造。课程系统性强,知识体系完整,覆盖90%以上的企业环境下SQL Server高可用场景,课程不仅演示详细的操作步骤,更加突出最常见的故障和问题,让学员少走“弯路”,不只是让学员学会“操作”更能让学员“操作”的规范,满满的干货分享,一些课程资料(架构图、部署规划表格等)不仅可以帮助学员掌握技能,也可以作为学员在企业生产环境实施SQL Server高可用的配置文档、操作手册等。课程的实验环境介绍:1)全部基于微软域环境和企业版SQL Server AOAG - 95%以上的企业环境都是在域环境,不介绍非域环境和标准版的SQL Server高可用性组,这的配置在企业较罕见,没有实践意义,不浪费学员时间。2)相应域环境已提前部署和配置好 - 学员导入虚拟机即可开始实验,无需从零开始搭建域环境,所有实验SQL Server均已加域,直入主题,节省大量时间。3)最新的Windows Server故障转移集群(WS2016、WS2019)和最新版本的SQL ServerSQL2017、SQL2019) -  WS2016-SQL2017与WS2019-SQL2019是目前大多数企业SQL Server高可用的主要平台,基于微软产品生命周期现在一些企业也在讲早期的AOAG向这两个版本迁移,掌握这两种组合不仅让学员学会,更能学有所用。本课程为后续SQL Server进阶课程铺垫,是通向SQL Server DBA 专家的必经之路,讲师每周答疑两次。所有课程资料包括:课程PPT、架构图、部署规划表格、各类脚本学员均可下载。     

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧