建立觸發

如果要從 Cview 建立觸發,請執行下列動作之一:

這時右側會出現「觸發」畫面。

請利用「觸發」畫面中的標籤來建置觸發定義。

「觸發」標籤

  1. 名稱欄位中,輸入觸發的名稱。
  2. 綱目欄位中,選擇一個綱目。這個值可以是 SYS 以外的任何綱目。
  3. 事件欄位中,選擇觸發的動作:
  4. 發動時間欄位中,選擇觸發應該在事件「之前」或「之後」發動。
  5. 表格欄位中,選擇觸發所作用的表格。
  6. 觸發動作欄位中,指定進行發動的觸發所要執行的陳述式。觸發動作可以是任何有效的 SQL-J 陳述式,其中包括含有 Java 方法呼叫的 SQL-J 陳述式。比方說:

    UPDATE CustomizedTours SET getTotalCost =
    customized_tour::getTotalCost()

    附註:觸發動作可以參照第 5 步驟所沒有指定的表格中的資料庫物件。不過,如果除去了任何這些資料庫物件,觸發就會無效。

    附註:觸發動作有些限制,例如,它不能包含動態參數,或修改或除去定義觸發的表格。如果需要限制的完整清單,請參閱 Cloudscape Developer's Guide 一書。

「選項」標籤

請在選項標籤中,選擇性地指定觸發的參考資訊。通常,您會在觸發動作參照發動觸發的資料庫事件正在加以改變的資料時指定參考資訊。觸發可能需參照舊值(變更之前或「之前」)或新值(變更之後或「之後」)

  1. 如果用來限定的事件是 UPDATE 子句,選項標籤頂端會顯示受影響的表格中的直欄清單。請選取在更新時,哪些直欄應該發動觸發。(如果要複選,請在點按或操作箭頭的同時按住 Shift 鍵)
  2. (選用)在參照欄位中,指定舊 (OLD) 或新 (NEW) 的轉移變數。當觸發動作必須參照用來限定的事件所影響的表格或列時,會使用這個值。請指定 OLD 來參照變更之前的表格或列值,或指定 NEW 來參照變更之後的表格或列值。

    附註:INSERT 列或表格觸發不能參照 OLD 列或表格。DELETE 列或表格觸發不能參照 NEW 列或表格。

    附註:只有在指定了這個欄位值時,才適用第 3 和 5 步驟。

  3. 參照類型欄位中,選擇您要參照舊或新的 ROW 或 TABLE。
  4. 參照為欄位中,選擇性地指定 NEW 或 OLD 轉移變數的別名或相互關係名稱。您可以指定自己的別名,也可以保留預設識別碼 AREFERENCE

    如果您不要使用預設變數名稱 OLD 或 NEW,請指定「參照為」的值。比方說,如果 DELETE 作業發動參照 OLD 值的列觸發,您可以指定用 DELETEDROW 這個別名來取代 `OLD'。之後,您就可以在觸發動作陳述式中使用 DELETEDROW。

  5. 適用項目欄位中,選擇這是「列」觸發或「陳述式」觸發。
  6. 選項標籤底端,將啟用觸發勾選框的狀態改成啟用或停用觸發。依預設,會啟用觸發。

「SQL」標籤

SQL 標籤會顯示建立觸發的文字,以及啟用或停用觸發的陳述式和除去觸發的陳述式。