猿问

关于创建触发器的问题

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

繁星coding
浏览 626回答 2
2回答

噜噜哒

不要试图在一个逻辑单元中完成这些!因为,库存表与入库表是一对关联表,它们是一对多的关系。我理解你的库存表应当叫“仓库产品账页”,该账页上起码有“产品ID、入库数量、出库数量、库存数量”等等字段。入库表实际上是产品的入库明细,它的入库数量是累加到仓库产品账页的入库数量上的。建议: 先建立“产品标准”,再建立“仓库产品账页”,最后建立“仓库产品明细”(入库明细表,实际上是仓库产品明细的一种逻辑形式)。产品标准、仓库产品账页、仓库产品明细,这三张表,从左至右全是一对多的关系。就仓库而言,标准做法是首先建立“仓库产品账页”,然后才能谈得上入库、出库等等的事情。

湖上湖

in就是入库表store就是库存表例子如下:(在in表右键选trigger)create TRIGGER ProductIn   ON  [in]   AFTER INSERTAS 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
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答