2011-12-30 180 views
0

我有一个table A插入数据。然后一些计算正在更新相同的table A如何在完成数据插入表后触发触发器

我想触发一个触发器,在完成数据插入(插入和更新后)后调用Procedure A

我该怎么做?

是否有任何其他方式自动执行此操作?或者我必须在table A完成数据插入后手动运行Procedure A


更简单地说,我想知道如何在插入几行和一个提交后触发触发器,即不是针对每一行。

+0

为什么更新后的触发器不能帮助你? (不是每个;一个语句触发器) – 2011-12-30 09:20:26

回答

4

您可以为每行或每个语句(FOR EACH ROW选项)定义要触发的触发器。

如果我理解你是对的,你想在一堆陈述后触发触发器?不要以为你可以。即使你可以,我宁愿不这样做。它们会分散您的程序流程/逻辑,并且会让您很难了解您的软件如何工作。

问候

+0

我认为你是对的...我在网上也找到任何东西也.. 将尝试任何其他选项..反正谢谢... – Avi 2011-12-30 09:04:21

3

如果我正确理解你的问题,你想触发器触发您完成您的交易由几个插入/更新语句后?如果是这种情况,我认为您应该考虑在插入/更新操作完成后立即在您的程序流程中调用您的Procedure A

换句话说:触发器只会有用,如果它应该被调用每行或每个语句。

0

在表中添加一列:例如“FINAL_ACTION”。保持这个列不变,直到您预期的最终行动。然后让你的触发器只被解雇:

REFERENCING NEW AS NEWREC OLD AS OLDREC 
FOR EACH ROW 
WHEN (NEWREC.FINAL_ACTION <> OLDREC.FINAL_ACTION) 
DECLARE 
    --YOUR DECLARATIONS 
BEGIN 
    --DO SOMETHING 
END;