Discussion:
Actualizar fecha y hora de modificacion a traves de un trigger, Se puede?
(demasiado antiguo para responder)
Alexc - Perú
2005-11-11 15:32:51 UTC
Permalink
Como puedo hacer para que cada ves que ejecute un update, en automatico se
guarde la fecha y hora de actualizacion en un campo, sin necesida que yo lo
programe en el lado del cliente, sino que esto lo haga el servidor,
Espero que entiendan mi pregunta, esto se puede hacer con un desencadenante
que se ejecute cada vez que se ejecute el evento UPDATE, si se puede hacer
esto, Como lo hago?
Desde ya muchas gracias por sus aportes.
Isaias
2005-11-11 17:01:06 UTC
Permalink
Alex

Programa un TRIGGER en tu tabla, para que cuando se ejecute el UPDATE,
INSERT o DELETE, guardes el historia de quien lo hizo.

Checa este link:

http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art73.asp
--
Saludos
IIslas
Post by Alexc - Perú
Como puedo hacer para que cada ves que ejecute un update, en automatico se
guarde la fecha y hora de actualizacion en un campo, sin necesida que yo lo
programe en el lado del cliente, sino que esto lo haga el servidor,
Espero que entiendan mi pregunta, esto se puede hacer con un desencadenante
que se ejecute cada vez que se ejecute el evento UPDATE, si se puede hacer
esto, Como lo hago?
Desde ya muchas gracias por sus aportes.
Alejandro Mesa
2005-11-11 17:03:07 UTC
Permalink
Alexc,

Ejemplo:

create table t1(
c1 int not null identity primary key,
c2 varchar(25) null,
date_inserted datetime not null default (getdate()),
date_updated datetime null
)
go

create trigger tr_t1_upd on t1
for update
as
if @@rowcount = 0 return

update t1
set date_updated = getdate()
where exists (select * from inserted as i where i.c1 = t1.c1)
go

insert into t1 default values
insert into t1 default values
go

select * from t1
go

update t1
set c2 = 'SQL Server'
where c1 = 2
go

select * from t1
go

drop table t1
go


AMB
Post by Alexc - Perú
Como puedo hacer para que cada ves que ejecute un update, en automatico se
guarde la fecha y hora de actualizacion en un campo, sin necesida que yo lo
programe en el lado del cliente, sino que esto lo haga el servidor,
Espero que entiendan mi pregunta, esto se puede hacer con un desencadenante
que se ejecute cada vez que se ejecute el evento UPDATE, si se puede hacer
esto, Como lo hago?
Desde ya muchas gracias por sus aportes.
Eleazar Nuñez
2005-11-11 17:25:50 UTC
Permalink
Hola Alejandro
t1 de que tabla es alias?
el exists para que es (que condicion)?

update t1
set date_updated = getdate()
where exists (select * from inserted as i where i.c1 = t1.c1)
Post by Alejandro Mesa
Alexc,
create table t1(
c1 int not null identity primary key,
c2 varchar(25) null,
date_inserted datetime not null default (getdate()),
date_updated datetime null
)
go
create trigger tr_t1_upd on t1
for update
as
update t1
set date_updated = getdate()
where exists (select * from inserted as i where i.c1 = t1.c1)
go
insert into t1 default values
insert into t1 default values
go
select * from t1
go
update t1
set c2 = 'SQL Server'
where c1 = 2
go
select * from t1
go
drop table t1
go
AMB
Post by Alexc - Perú
Como puedo hacer para que cada ves que ejecute un update, en automatico se
guarde la fecha y hora de actualizacion en un campo, sin necesida que yo lo
programe en el lado del cliente, sino que esto lo haga el servidor,
Espero que entiendan mi pregunta, esto se puede hacer con un
desencadenante
Post by Alejandro Mesa
Post by Alexc - Perú
que se ejecute cada vez que se ejecute el evento UPDATE, si se puede hacer
esto, Como lo hago?
Desde ya muchas gracias por sus aportes.
Alejandro Mesa
2005-11-11 22:26:03 UTC
Permalink
Eleazar Nuñez,
Post by Eleazar Nuñez
t1 de que tabla es alias?
No es alias de nada, es la propia tabla.
Post by Eleazar Nuñez
el exists para que es (que condicion)?
Es para que se actualize la columna date_update solo de aquellas filas que
fueron actualizadas.


AMB
Post by Eleazar Nuñez
Hola Alejandro
t1 de que tabla es alias?
el exists para que es (que condicion)?
update t1
set date_updated = getdate()
where exists (select * from inserted as i where i.c1 = t1.c1)
Post by Alejandro Mesa
Alexc,
create table t1(
c1 int not null identity primary key,
c2 varchar(25) null,
date_inserted datetime not null default (getdate()),
date_updated datetime null
)
go
create trigger tr_t1_upd on t1
for update
as
update t1
set date_updated = getdate()
where exists (select * from inserted as i where i.c1 = t1.c1)
go
insert into t1 default values
insert into t1 default values
go
select * from t1
go
update t1
set c2 = 'SQL Server'
where c1 = 2
go
select * from t1
go
drop table t1
go
AMB
Post by Alexc - Perú
Como puedo hacer para que cada ves que ejecute un update, en automatico
se
Post by Alejandro Mesa
Post by Alexc - Perú
guarde la fecha y hora de actualizacion en un campo, sin necesida que yo
lo
Post by Alejandro Mesa
Post by Alexc - Perú
programe en el lado del cliente, sino que esto lo haga el servidor,
Espero que entiendan mi pregunta, esto se puede hacer con un
desencadenante
Post by Alejandro Mesa
Post by Alexc - Perú
que se ejecute cada vez que se ejecute el evento UPDATE, si se puede
hacer
Post by Alejandro Mesa
Post by Alexc - Perú
esto, Como lo hago?
Desde ya muchas gracias por sus aportes.
Eleazar Nuñez
2005-11-11 17:14:16 UTC
Permalink
hola
Revisa en la ayuda sp_bindefault o y CREATE DEFAULT
Post by Alexc - Perú
Como puedo hacer para que cada ves que ejecute un update, en automatico se
guarde la fecha y hora de actualizacion en un campo, sin necesida que yo lo
programe en el lado del cliente, sino que esto lo haga el servidor,
Espero que entiendan mi pregunta, esto se puede hacer con un
desencadenante
Post by Alexc - Perú
que se ejecute cada vez que se ejecute el evento UPDATE, si se puede hacer
esto, Como lo hago?
Desde ya muchas gracias por sus aportes.
Loading...