Quizá esto te sirva.
Los procedimientos almacenados se guardan en una de las llamadas
tablas del sistema:
RDB$Procedures. Al menos en Firebird 1.5, no veo que este tipo de tablas tengan un campo que almacene la fecha y hora de creación o última modificación. Lo bueno es que Firebird permite agregarles más campos.
Hice una prueba con la siguiente macroinstrucción (
script en inglés
), y me resultó efectiva:
Código SQL
[-]-- Agregamos un campo de fecha y hora a la tabla de los procedimientos
Alter Table RDB$Procedures Add FechaModificacion TimeStamp;
Create Trigger tgbiuRDB$ProceduresFechaM From RDB$Procedures
Active Before Insert Or Update Position 0
As
Begin
New.FechaModificacion = Current_TimeStamp;
End;
Haciendo lo mismo, cada vez que desees conocer la fecha y hora de la última modificación de un procedimiento almacenado, sólo tendrías que realizar la consulta:
Código SQL
[-]Select FechaModificacion From RDB$Procedures
Where RDB$Procedure_Name = NombreDelSP
Desde luego, los disparadores no son retroactivos. Tendrás que provocar un
Alter Procedure para cada procedimiento ya existente a fin de rellenar el nuevo campo o, si prefieres, puedes establecerlo directamente con una sentencia "Update RDB$Procedures Set FechaModificacion =...".
Asimismo, existen otras tablas del sistema donde se guardan las tablas y demás objetos de la base de datos, a las cuales puedes aplicar la misma técnica.
Saludos.
Al González.