2011-12-30 181 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;