create trigger TR_Delete_pm_WorkCard on pm_WorkCard for delete as if @@rowcount=0 return begin tran update pm_PlanEntry set FDispatchQty=t4.FDispatchQty - t1.FDispatchQty from deleted as t2 join pm_WorkCardEntry as t1 on(t1.fparentid=t2.FInterID) join pm_Plan t3 on(t2.FPlanID=t3.FInterID) join pm_PlanEntry as t4 on(t3.FInterID=t4.fparentid and t1.FRowID=t4.FRowID) if @@error=0 commit tran else rollback tran
表中字段没有问题,触发器能够执行成功,就是得不到预期的效果。你先把里面的查询语句去执行一下看看效果
通过这个语句 select * from pm_WorkCard as t2 join pm_WorkCardEntry as t1 on(t1.fparentid=t2.FInterID) join pm_Plan t3 on(t2.FPlanID=t3.FInterID) join pm_PlanEntry as t4 on(t3.FInterID=t4.fparentid and t1.FRowID=t4.FRowID)
能得到数据。 if @@rowcount=0 return --问题是不是在这里,有用吗? 觉得是没什么用,呵呵,本来就是后触发了