一个表中的数据更新,怎样用触发器在另一个表中更新数据

weixin_41581703 2018-01-05 01:05:36
其中,客户(client)的属性有:客户编码(cno)、客户名称(cname)、所属行业(trades)、客户地址(caddress)、客户联系人(clinkman)、客户电话(ctelephone) ;产品(product)的属性有:产品编号(pno)、产品名称(pname)、规格(spec)、单位(unit)、单价(unitprice)、供应厂家编码(fno);厂家(factory)的属性有:厂家编码(fno)、厂家名称(fname)、厂家地址(faddress)、销售经理(salesmanager)、厂家电话(ftelephone)。
在客户订购(order)产品中,一个客户可以订购多种产品,一种产品也可以被多个客户订购,客户订购产品时须标明订购的客户编码、产品编号、订购数量(amount)和订购日期(date);在厂家供应(supply)产品中,一种产品可以由多个厂家供应,而一个厂家只供应一种产品,厂家供应产品时须标明厂家编码、产品编号、供应日期(sdate )和供应数量(samount)。


创建一个存放厂家供应产品数量的累计统计表(包括厂家编码、厂家名称、产品编码、产品名称和累计供应数量等列信息);然后创建一个insert触发器,使得厂家增加供应产品时,与累计统计表的数据保持一致。
谁能帮我编写一个代码吗
...全文
832 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
RINK_1 2018-01-05
  • 打赏
  • 举报
回复
当supply表中已有的fno和pno新增供货时,能触发吗 else后面的逻辑应该有问题,tjb中都没有这个fno和pno的数据时,select tjb.fno,fname,tjb.pno,pname,累计供应数量 from tjb join inserted on inserted.fno=tjb.fno and tjb.pno=inserted.pno这个肯定没有数据的。
weixin_41581703 2018-01-05
  • 打赏
  • 举报
回复
ALTER trigger [dbo].[summ1] on [dbo].[supply] after insert as if exists(select * from tjb join inserted on inserted.fno=tjb.fno and tjb.pno=inserted.pno) update tjb set 累计供应数量=累计供应数量+samount from tjb join inserted on inserted.fno=tjb.fno and tjb.pno=inserted.pno else insert into tjb select tjb.fno,fname,tjb.pno,pname,累计供应数量 from tjb join inserted on inserted.fno=tjb.fno and tjb.pno=inserted.pno 我写成这样,但是无法触发在另个表中的数据的改变
shoppo0505 2018-01-05
  • 打赏
  • 举报
回复
触发器就是干这个活得,具体自己看看再问吧。 很简单的。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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