Triggers are code that an application associates with a data source object and an action. For example, writing a record might cause code associated with that object or action to execute. The DataServer allows an application to execute triggers for both OpenEdge databases (including the schema holder) and MS SQL Server data sources. In an application that executes both types, the OpenEdge trigger (CREATE, FIND, UPDATE, DELETE) executes first. If processing an OpenEdge trigger results in a data source request, the DataServer passes the request to the MS SQL Server data source and the operation (INSERT, UPDATE, DELETE) executes.
Triggers for OpenEdge databases and MS SQL Server data sources are independent of each other. A data source trigger that rolls back does not affect OpenEdge triggers. Defining a trigger in OpenEdge does not create a data source trigger definition. An OpenEdge trigger that rolls back does so independently of the data source's transaction scope. Note, however, that although triggers for OpenEdge databases and MS SQL Server data sources are independent, they might affect each other based on the kind of transaction your application is executing. For example, ensure that triggers running in both OpenEdge and at the data source do not dead lock on the same record access.