Certaines bases de données cible n'acceptent pas de voir figurer un code dans une instruction de trigger. Dans ces bases de données, un modèle de trigger peut appeler une procédure associée sous la forme d'un paramètre, qui est défini dans un modèle de procédure. Dans ces cas, les modèles de procédure sont répertoriés dans la liste des modèles de trigger.
Informix n'accepte pas les codes dans les modèles de trigger. Le modèle de trigger InsertTrigger appelle la procédure sous la forme de la variable %PROC%, comme suit :
-- Insert trigger "[%QUALIFIER%]%TRIGGER%" for table "[%QUALIFIER%]%TABLE%" create trigger [%QUALIFIER%]%TRIGGER% insert on [%QUALIFIER%]%TABLE% referencing new as new_ins for each row (execute procedure %PROC%(.FKCOLN("new_ins.%COLUMN%", "", ",", "));") /
Le modèle de trigger InsertProc définit la procédure, comme suit :
-- Insert procedure "%PROC%" for table "[%QUALIFIER%]%TABLE%" create procedure %PROC%(.FKCOLN("new_%.14L:COLUMN% %COLTYPE%", "", ",", ")") .DeclInsertChildParentExist .DeclInsertTooManyChildren define errno integer; define errmsg char(255); define numrows integer; .InsertChildParentExist .InsertTooManyChildren end procedure; /