Hola.
Cita:
Empezado por Gallosuarez
El_Raso:
Mira, en mi caso hice una pequeña consulta que me genera el código que después inserto en mi procedimiento almacenado. Básicamente lo que hace esta consulta es utilizar las tablas del sistema para obtener TODOS los campos de la tabla especificada en la clausula WHERE y generar el código que se necesita para cada campo involucrado en dicha tabla.
Código SQL [-]SELECT 'IF (NEW.' || TRIM(RDB$FIELD_NAME) || ' IS DISTINCT FROM OLD.' || TRIM(RDB$FIELD_NAME) || ') THEN REG_CHANGES;' FROM RDB$RELATION_FIELDS WHERE RDB$RELATION_NAME = 'NOMBRE_TABLA'
Adecua la a tus necesidades, ignoro si existe algún otro truco que nos facilite este trabajo.
Saludos
Gerardo Suárez Trejo
P.D. Estaremos atentos a ver si alguien mas ha hecho algo al respecto.
|
¿ Esto te funciona ?.
Yo lo he intentado varias veces, pero al ejecutar ese comando con un EXECUTE STATEMENT, se hace en un contexto distinto y las variables NEW.XXX y OLD.XXX no se reconocen (incluso aunque el comando se ejecute en el mismo trigger).
¿ Puedes poner un poco más de código para ver como lo haces ?. Me interesa mucho.
Saludos.