Skip to main content

Trigger Definitions

Describes the structure of a trigger definition.


Triggers are code segments executed when specific events occur in Caché SQL. Caché supports triggers based on the execution of INSERT, UPDATE, and DELETE commands. The specified code will be executed either immediately before or immediately after the relevant command is executed, depending on the trigger definition. Each event can have multiple triggers as long as they are assigned an execution order.

You can add trigger definitions to persistent classes. They are not meaningful in other kinds of classes.


A trigger definition has the following structure:

/// description Trigger name [ keyword_list ]  { code }


  • description (optional) is intended for display in the Class Reference. The description is blank by default. See “Creating Class Documentation” in Using Caché Objects.

  • name (required) is the name of the trigger. This must be a valid class member name, and must not conflict with any other class member names.

  • keyword_list (required) is a comma-separated list of keywords that further define the trigger.

    See the section “Trigger Keywords.”

  • code (required) is zero or more lines of ObjectScript code that define the code that is to be executed when the trigger is fired.


/// This trigger updates the LogTable after every insert
Trigger LogEvent [ Event = INSERT, Time = AFTER ]
    // get row id of inserted row
    NEW id
    SET id = {ID}

    // INSERT value into Log table
    &sql(INSERT INTO LogTable (TableName, IDValue) VALUES ('MyApp.Person', :id))

See Also

FeedbackOpens in a new tab