A continuación comparto un ejemplo de sintaxis de un trigger en DB2.
Aunque en la documentación está más que claro, siempre va bien contar con un ejemplo concreto y típico de su utilización.
CREATE TRIGGER verificacion_datos NO CASCADE BEFORE UPDATE ON facturas
REFERENCING OLD AS O NEW AS N
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
IF (O.FACT_NOMBRE <> N.FACT_NOMBRE) THEN
SIGNAL SQLSTATE 'Z0001' ('UPDATE CON NOMBRE DISTINTO');
END IF;
IF (O.FACT_NIF <> N.FACT_NIF) THEN
SIGNAL SQLSTATE 'Z0002' ('UPDATE CON NIF DISTINTO');
END IF;
IF (O.ID_EMPRESA <> N.ID_EMPRESA) THEN
SIGNAL SQLSTATE 'Z0003' ('UPDATE CON ID_EMPRESA DISTINTO');
END IF;
END
