二个表ORDERS和ORDER DETAIL
算法如下:在我更新ORDER DETAIL时,一起更新ORDERS,用触发器实现如下:
------------插入操作时
CREATE TRIGGER intOrderdetail
ON [ORDER DETAILS]
FOR INSERT AS
update orders
set SUM_MONEY=SUM_MONEY+unitprice*quantity*(1-discount)
from orders s, inserted ins
where s.orderid=ins.orderid
---------------UPDATE操作时(分两步DELETED和INSERTED)
CREATE TRIGGER updOrderdetail
ON [ORDER DETAILS]
FOR update AS
update orders
set SUM_MONEY=SUM_MONEY-unitprice*quantity*(1-discount)
from orders s, deleted del
where s.orderid=del.orderid
update orders set SUM_MONEY=SUM_MONEY+unitprice*quantity*(1-discount)
from orders s, inserted ins
where s.orderid=ins.orderid
--------删除操作时
CREATE TRIGGER delOrderdetail
ON [ORDER DETAILS]
FOR DELETE AS
update orders set SUM_MONEY=SUM_MONEY-unitprice*quantity*(1-discount)
from orders s, deleted del
where s.orderid=del.orderid
关于ROLE,要删除角色时,必须除去它属于的用户才可以删除它。