批量删除如何写触发器代码??

zjh135 2005-08-06 09:58:13
表A为材料出库表,表B为库存表
在A中删除多项记录(如多个材料的数量),在B中如果分别把这多个材料对应的库存减少呢?
不知触发器如何写??帮一把!!
...全文
208 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dd_zhouqian 2005-08-09
  • 打赏
  • 举报
回复
看一下帮助,关于update得用法,而挂号里的我猜该是材料出库表,这里用的是触发器,可能得用DELETED表示吧
zjh135 2005-08-08
  • 打赏
  • 举报
回复
我的表的结构是这样的
A:
autoid invcode qty
B:
autoid invcode stockQty

谢谢奇奇!
我按你的方法写:update B set B.stockQty=B.stockQty-deleted.Qty
显示107错误:列前缀“DELETED"与查询中所用的表名或别名不匹配。
谢谢邹建!
你的代码没有错误,我是这样写的:
create trigger inout_deleted
on A
for delete
as
update B set stockQty=B.stockQty-deleted.Qty
from B,(select invcode,Qty=sum(Qty) from deleted group by invcode)deleted
where B.invcode=deleted.invcode
但我不知这句from B,(select invcode,Qty=sum(Qty) from deleted group by invcode)deleted
中B后一个逗号,和括号后一个DELETED是什么意思???帮我解答一下吧!!!


zjcxc 2005-08-06
  • 打赏
  • 举报
回复
create trigger tr_delete_A on A
for delete
as
update B set 库存=b.库存-d.库存
from B,(select 材料编号,库存=sum(数量) from deleted group by 材料编号)d
where b.材料编号=d.材料编号
sunqi_790817 2005-08-06
  • 打赏
  • 举报
回复
在A表中写delete触发器
update B set 库存 = 库存 - deleted.材料的数量 where B.材料标识 = deleted.材料标识

22,209

社区成员

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

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