为了账号安全,请及时绑定邮箱和手机立即绑定

关于创建触发器的问题

关于创建触发器的问题

繁星coding 2018-11-12 17:08:05
现在有两张表,一张是 入库表(ID  int ,name  varchar(20),amount  int),用来记录入库记录,另外一张是库存表(ID  int ,name varchar(20),leaving),用来记录现有的库存情况。现在的问题是我向入库表中添加了一条记录以后,如果在库存表中没有同名的记录,则在库存表中插入一条记录,如果库存表中有同名的记录,则修改这条记录的leaving=leavingt+amount,请问这样的这个触发器应该怎么写呢 ?
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

不要试图在一个逻辑单元中完成这些!

因为,库存表与入库表是一对关联表,它们是一对多的关系。

我理解你的库存表应当叫“仓库产品账页”,该账页上起码有“产品ID、入库数量、出库数量、库存数量”等等字段。

入库表实际上是产品的入库明细,它的入库数量是累加到仓库产品账页的入库数量上的。

建议: 先建立“产品标准”,再建立“仓库产品账页”,最后建立“仓库产品明细”(入库明细表,实际上是仓库产品明细的一种逻辑形式)。

产品标准、仓库产品账页、仓库产品明细,这三张表,从左至右全是一对多的关系。

就仓库而言,标准做法是首先建立“仓库产品账页”,然后才能谈得上入库、出库等等的事情。


查看完整回答
反对 回复 2018-11-16
?
湖上湖

TA贡献2003条经验 获得超2个赞

in就是入库表

store就是库存表

例子如下:(在in表右键选trigger)

create TRIGGER ProductIn
   ON  [in]
   AFTER INSERT
AS 
BEGIN
    Declare @amount int;
    Declare @Name varchar(20);
    select  @amount=amount,@Name=Name from [in] inserted  

    update store set leaving=leaving+@amount where [name]=@name
 SET NOCOUNT ON;
END


查看完整回答
反对 回复 2018-11-16
  • 2 回答
  • 0 关注
  • 625 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信