Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Último registro actualizado.

Estas en el tema de Último registro actualizado. en el foro de SQL Server en Foros del Web. Hola, (select * from inserted ) Esto me devuelve el último registro insertado en la tabla, me gustaría saber si hay alguno que me devuelva ...
  #1 (permalink)  
Antiguo 23/07/2007, 10:00
 
Fecha de Ingreso: julio-2007
Mensajes: 5
Antigüedad: 16 años, 9 meses
Puntos: 0
Último registro actualizado.

Hola,

(select * from inserted )

Esto me devuelve el último registro insertado en la tabla, me gustaría saber si hay alguno que me devuelva el último registro actualiazado "update" en la tabla.

Muchas gracias
  #2 (permalink)  
Antiguo 23/07/2007, 18:46
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: Último registro actualizado.

deleted e inserted son tablas lógicas (conceptuales). Son de estructura similar a la tabla en que se define el desencadenador, es decir, la tabla en que se intenta la acción del usuario, y guarda los valores antiguos o nuevos de las filas que la acción del usuario puede cambiar. Por ejemplo, para recuperar todos los valores de la tabla deleted, utilice:
SELECT *
FROM deleted

Por lo que en DELETED, tendras todos aquellos REGISTRO(S) que fueron actualizados.
  #3 (permalink)  
Antiguo 24/07/2007, 01:58
 
Fecha de Ingreso: julio-2007
Mensajes: 5
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Último registro actualizado.

Ok, muchas gracias.

Lo que estoy haciendo de todos modos no me funciona , jeje a ver si le podeis hechar un vistazo y se os ocurre alguna idea,


CREATE TRIGGER ordena_documento2 ON [dbo].[test]
FOR UPDATE
AS
if ( select count(*) from test where test.piramide = (select piramide from deleted )) > 0
begin
update test set test.piramide=test.piramide+1
where (test.piramide = (select piramide from deleted)) and( test.codigoprioridad !=(select codigoprioridad from deleted))
end


Tengo un campo numerico que se va ordenando a medida que lo voy modificando, ejemplo:

Tengo una tabla con valores:

1 1 1
2 2 2
3 3 3

Si quiero pasar el 3 al primero :

3 3 1
1 1 2
2 2 3

El trigger en teoria se encarga de mirar el último valor actualizado y mirar si hay otro igual en la tabla si es así lo que va hacer es incrementar uno al campo que no se ha actualizado, y hacer otro update introduciendo ese valor, entonces al hacer el update vuelve a entrar hasta que ya no encuentre ningún otro valor igual.

"la pena es que no funcione" ...

Espero haberme explicado bien,


Un saludo y muchas gracias...

Última edición por ck019; 24/07/2007 a las 02:00 Razón: 1a
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:54.