Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-04-2005
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Question Trigger Para Grabar Fecha Cambio Registro

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

Gracias amigos po su coloboracion
Responder Con Cita
  #2  
Antiguo 18-04-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 22
__hector Va por buen camino
en el trigger:

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

Admito que no entiendo bien la pregunta
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #3  
Antiguo 19-04-2005
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
tRIGGER SQL AMPLICACION

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



Cita:
Empezado por hector
en el trigger:

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

Admito que no entiendo bien la pregunta
Responder Con Cita
  #4  
Antiguo 19-04-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 22
__hector Va por buen camino
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)
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:30:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi