Gracias. Otra pregunta.

13/12/2005 - 22:42 por Miguel Arenas | Informe spam
Ahora como hago para saber el valor que tenia antes de la actualizacion.
Es decir comparar el valor nuevo con el valor que tiene actualmente.
Gracias, por la ayuda.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
13/12/2005 - 22:55 | Informe spam
Miguel,

Existen dos tablas en sql server que solo pueden ser usadas dentro de un
trigger y que te permiten ver las filas antes y despues de la actualizacion.
El nombre de estas tablas son deleted e inserted. Te recomiendo leas los BOL
antes de continuar con lo que estas haciendo.

Ejemplo:

create table t1 (
c1 int not null identity unique,
c2 varchar(25) not null
)
go

insert into t1(c2) values('antes')
go

create trigger tr_t1_after_upd on t1
for update
as
if update(c2)
select b.c1, a.c2, b.c2 from deleted as a inner join inserted as b on
a.c1 = b.c1
go

update t1
set c2 = 'despues'
go

drop table t1
go


AMB

P.S. El ejemplo anterior incluye una sentencia "select" dentro de un
trigger, esto lo hago por prueba, hacerlo en produccion es mala practica.


"Miguel Arenas" wrote:

Ahora como hago para saber el valor que tenia antes de la actualizacion.
Es decir comparar el valor nuevo con el valor que tiene actualmente.
Gracias, por la ayuda.
Respuesta Responder a este mensaje
#2 Maxi
14/12/2005 - 13:09 | Informe spam
Hola Ale, esto es en versiones antes que la 2005. Si usas la 2005podes usar
fuera de los triggers las tablas inserted y deleted, esto se logra con la
utilizacion del comando OUTPUT


Salu2
Maxi [MVP SQL SERVER]


"Alejandro Mesa" escribió en el
mensaje news:
Miguel,

Existen dos tablas en sql server que solo pueden ser usadas dentro de un
trigger y que te permiten ver las filas antes y despues de la
actualizacion.
El nombre de estas tablas son deleted e inserted. Te recomiendo leas los
BOL
antes de continuar con lo que estas haciendo.

Ejemplo:

create table t1 (
c1 int not null identity unique,
c2 varchar(25) not null
)
go

insert into t1(c2) values('antes')
go

create trigger tr_t1_after_upd on t1
for update
as
if update(c2)
select b.c1, a.c2, b.c2 from deleted as a inner join inserted as b on
a.c1 = b.c1
go

update t1
set c2 = 'despues'
go

drop table t1
go


AMB

P.S. El ejemplo anterior incluye una sentencia "select" dentro de un
trigger, esto lo hago por prueba, hacerlo en produccion es mala practica.


"Miguel Arenas" wrote:

Ahora como hago para saber el valor que tenia antes de la actualizacion.
Es decir comparar el valor nuevo con el valor que tiene actualmente.
Gracias, por la ayuda.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida