PDA

Ver la Versión Completa : Trigger Para Grabar Fecha Cambio Registro


ASAPLTDA
18-04-2005, 01:56:39
Hola amigos del foro, inicio mi primera aplicacion son sqlserver y requiero elaborar un triger el cual debe registrar la fecha del cambio del registro por parte de algun usuario.

En un trigger de firebird se hace asi

begin
new.fechaUltimoCambio = current_DATE;
new.UsuarioUltimoCambio= current=user;
end

en el manual que tengo siempre el trigger efectua cambio a otros archivo
como puedo hacer algo parecido a esto :confused:

Gracias amigos po su coloboracion

__hector
18-04-2005, 16:54:47
en el trigger:

insert into tabla (campofecha) values (getdate())

Admito que no entiendo bien la pregunta :)

ASAPLTDA
19-04-2005, 16:57:44
Gracias por el interes de ayudarme,

La idea es que cada vez que se efectue un cambio/Adiciones en un registro exista un trigger asociado a una tabla (Ejemplo Tabla de clientes) el cual grabe la fecha del cambio,el usuario que lo cambio.
En interbase se crea un trigger que se asocia a la tabla y se puede asociar al evento insert/update antes de grabar el registro(Before Update) y en triger se pueden cambiar los valores de las columnas de la tabla como decir
antes de grabar el registro en la base de datos, cambie la columna fechademodificcion con la fecha del sistema.
con ejemplo dado seria algo parecido a
CREATE TRIGGER CLIENTESUPD FOR TABLE CLIENTES
BEFORE INSERT OR UPDATE
new.CAMPOFECHA = GETDATE();
SET new.CAMPOFECHA = GETDATE();
END;

En interbase el prefijo new.xxxxx se utiliza para denotar que el campo a modificar es el del registro que se grabara en la base de datos

en los manuales de sqlserver que tengo aparentemente se habla de un registro temporal o algo parecido



en el trigger:

insert into tabla (campofecha) values (getdate())

Admito que no entiendo bien la pregunta :)

__hector
19-04-2005, 20:35:59
no, existen, de acuerdo al tipo de operacion, las tablas inserted y deleted. Las referencias a la tabla inserted contienen los valores nuevos, y deleted los que se van a sustituir.

Asi que un trigger te funcionaria algo como:

DECLARE @CampoActualizado varchar
SELECT @CampoActualizado = campo from deleted

insert into tablaAuditoria (campo) values (@CampoActualizado)