如何建这个触发器

ZacharyTaylor 2006-11-27 02:23:42
当要删除tableA的记录时,实际并不删除而是修改这条记录的state列值为"删除",且根据这条记录的order列值修改tableB表的qty=0;
...全文
165 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZacharyTaylor 2006-11-27
  • 打赏
  • 举报
回复
实做的问题,小在D正在开发仓库管理程序,进货单输入后该物料库存增加,但后来发现错了这张单要删除,那么物料要减去原来输入的数量,进货单表(tableA),库存表(tableB),想用触发器来操作
中国风 2006-11-27
  • 打赏
  • 举报
回复

create table ta(id int,[order] int,state bit)
insert ta
select 1,20 ,1 union all
select 2,30 ,1

create table tb(id int,qty bit)
insert tb
select 1,1 union all
select 2,1

create trigger test_tr on ta
instead of delete
as
update ta
set ta.state=0
from deleted d inner join ta on d.id=ta.id
update tb
set qty=0
from deleted d inner join tb on d.id=tb.id

--测试
delete ta where id=2
select * from tb
xln1325 2006-11-27
  • 打赏
  • 举报
回复
用INSTEAD OF触发器
中国风 2006-11-27
  • 打赏
  • 举报
回复
用触发器可以实现
hhhdyj 2006-11-27
  • 打赏
  • 举报
回复
奇怪的要求。。。
青锋-SS 2006-11-27
  • 打赏
  • 举报
回复
直接update tableA的state列不是更好?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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