数据库:sqlserver2000
有三个表:
主表是ORBaseAdjustOrder(字段:OAOID,OBOID),从表是ORBaseAdjustOrderItem
(字段:OOIID,OAOID,BPCID,OOIOrderQty),
主表和从表之间的关联是用OAOID。
另一个表是:ORBaseOrderItem(字段:OBOID,BPCID),ORBaseOrderItem表的OBOID与
ORBaseAdjustOrder表OBOID关联的,ORBaseOrderItem表的BPCID与ORBaseAdjustOrderItem
表的BPCID关联的。
我在主表ORBaseAdjustOrder里写触发器:
CREATE TRIGGER Tg_insertAdjustOrderData ON ORBaseAdjustOrder
FOR INSERT,update
AS
update ORBaseOrderItem set OOIAdjustOrderQty=OOIAdjustOrderQty+B.OOIOrderQty
from ORBaseOrderItem A,ORBaseAdjustOrderItem B,inserted D
where A.OBOID=D.OBOID and B.OAOID=D.OAOID and A.BPCID=B.BPCID
我是在delphi6编程,在主表添加一些数据,然后在从表添加2行以上的数据时,一按保存
就出错,说不能定位。
如果在从表只添加1行数据时,一按保存就成功了。
我觉得这个触发语句是不是只能更新一行数据,不能更新多行数据,后来看了帮助,帮助给出只能更新一行数据的触发器例子很象是我写的触发器的语句。
请问如何修改这段触发器可以更新多行数据。
有三个表:
主表是ORBaseAdjustOrder(字段:OAOID,OBOID),从表是ORBaseAdjustOrderItem
(字段:OOIID,OAOID,BPCID,OOIOrderQty),
主表和从表之间的关联是用OAOID。
另一个表是:ORBaseOrderItem(字段:OBOID,BPCID),ORBaseOrderItem表的OBOID与
ORBaseAdjustOrder表OBOID关联的,ORBaseOrderItem表的BPCID与ORBaseAdjustOrderItem
表的BPCID关联的。
我在主表ORBaseAdjustOrder里写触发器:
CREATE TRIGGER Tg_insertAdjustOrderData ON ORBaseAdjustOrder
FOR INSERT,update
AS
update ORBaseOrderItem set OOIAdjustOrderQty=OOIAdjustOrderQty+B.OOIOrderQty
from ORBaseOrderItem A,ORBaseAdjustOrderItem B,inserted D
where A.OBOID=D.OBOID and B.OAOID=D.OAOID and A.BPCID=B.BPCID
我是在delphi6编程,在主表添加一些数据,然后在从表添加2行以上的数据时,一按保存
就出错,说不能定位。
如果在从表只添加1行数据时,一按保存就成功了。
我觉得这个触发语句是不是只能更新一行数据,不能更新多行数据,后来看了帮助,帮助给出只能更新一行数据的触发器例子很象是我写的触发器的语句。
请问如何修改这段触发器可以更新多行数据。
ORBaseOrderItem表
OOIID OBOID BPCID OOIQTY OOIAdjustOrderQty
IBM3081 IBM3080 CRN360 40
IBM3082 IBM3080 IBM1700 520
IBM3083 IBM3080 IBM1693 126 ORBaseAdjustOrder表
OAOID OBOID
HRQ3554 IBM3080ORBaseAdjustOrderItem表
OOIID OAOID BPCID OOIOrderQty
HRQ3555 HRQ3554 CRN360 40
HRQ3556 HRQ3554 IBM1693 126
HRQ3557 HRQ3554 IBM1700 520