SQL - PUEDO RECUPERAR REGISTROS DE UNA TABLA BORRADOS AC

 
Vista:

PUEDO RECUPERAR REGISTROS DE UNA TABLA BORRADOS AC

Publicado por Fernando (49 intervenciones) el 27/09/2002 10:59:41
Es posible recuperar filas de una tabla que se han borrado a traves de un programa, de forma accidental ? ( por ejemplo, se han borrado 6 apuntes y quiero recuperarlos) ... tengo entendido que existen registros de transacciones para identificar registros borrados.....
Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PUEDO RECUPERAR REGISTROS DE UNA TABLA BORRADOS

Publicado por EDELRIO (540 intervenciones) el 28/09/2002 01:42:31
Me temo que no es posible a menos que tenga algun respaldo por ahi....

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PUEDO RECUPERAR REGISTROS DE UNA TABLA BORRADOS

Publicado por Hernan (49 intervenciones) el 29/09/2002 04:31:03
Contrario a lo que dice Edelrio, y creo no estar equivocado, existe una forma de recuperar filas.
Cuando se eliminan registros de cualquier tabla, los mismos son almacenados en la tabla deleted, la cual esta en memoria y tiene un buffer limitado.
Si borras algun registro y te das cuenta en seguida (sin haber reiniciado o apagado la PC) podes hacer un Select en dicha tabla para ver los registros eliminados actualmente en el Buffer.
Un consejo: Si tenes una tabla importante, por ejemplo tventas, crea un Trigger que al eliminar un registro de esa tabla, lo almacene en otra tabla creada por vos (en este caso podria llamarse Papelera).
Y cada tanto borras manualmente el contenido de la tabla Papelera.
Espero te sirva.
Cualquier cosa consultame.
Hernan.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:PUEDO RECUPERAR REGISTROS DE UNA TABLA BORRADOS

Publicado por Fernando Pena (49 intervenciones) el 30/09/2002 13:32:33
Antes de nada muchas gracias Sr.Hernan.
Todavía NO he probado tu solución, pero lo haré en breve , y dado que
NO apago el servidor en toda la semana...supongo que me será bastante útil.
No sé lo que es un "Trigger" pero lo miraré en los libros en pantalla.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PUEDO RECUPERAR REGISTROS DE UNA TABLA BORRADOS

Publicado por veralynn (4 intervenciones) el 30/09/2002 17:29:33
Sorry por entrometerme pero me parecio interesante la respuesta de hernan acerca de la tabla deleted.
Hernan como podria hacerle un query a esta tabla???
select * from deleted ó
select * from #deleted? ó
select * from ##deleted?
gracias

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PUEDO RECUPERAR REGISTROS DE UNA TABLA BORRADOS

Publicado por Fernando Pena (49 intervenciones) el 30/09/2002 13:34:24
Muchas Gracias por contestar Sr.EDELRIO.
Intentaré poner en práctica lo propuesto por Hernan.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Triggers

Publicado por Hernan (49 intervenciones) el 30/09/2002 15:10:33
Un Trigger o desencadenador es basicamente una funcion que protege una tabla.
Dicha "Funcion" se ejecuta cuando se Borran, actualizan o eliminan registros de la tabla a la cual protege.
Luego te paso la sentencia para crear dicho trigger, por ahora crea la tabla papelera con los mismos campos y del mismo tipo de la tabla original.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Triggers

Publicado por Fernando Pena (49 intervenciones) el 30/09/2002 17:02:13
1)Hola ! Ya he creado la TABLA "gemela" llamada "LECTURAS PAPELERA" (con la misma estructura que la tabla "LECTURAS" ).

2) Hago : CREATE TRIGGER trigger_lecturas ON [LECTURAS]
FOR DELETE,UPDATE
AS select * FROM deleted

...me crea un objeto dentro de "sysobjects" llamado "trigger_lecturas" pero luego; BORRO un registro con delete en la tabla "LECTURAS" ;
a continuación hago "SELECT * FROM deleted" ó "SELECT * FROM trigger_lecturas" y da el error :
Servidor: mensaje 208, nivel 16, estado 1, línea 1
El nombre de objeto 'deleted' no es válido.




Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Triggers

Publicado por Hernan (49 intervenciones) el 01/10/2002 03:08:00
Tenes dos problemas:
1) Recorda que los registros que elimines el trigger los envia a la tabla LECTURAS PARALELAS, por lo tanto cuando quieras ver los registros eliminados debes hacer un Select * from LECTURAS PARALELAS y no de la tabla deleted(porque estara vacia).
Otra cosa, los trigger se ejecutan automaticamente una vez creados, por lo tanto no se puede usar sentencias como Select trigger o EXEC Trigger (no existen).

El segundo problema es que esta mal pensada la accion del trigger. El trigger debe Hacer la clausula SELECT * From Deleted y a este resultado le debe hacer un Insert Into LECTURAS PARALELAS.
Espero te aclare la situacion.
Despues te envio la sintaxis exacta de lo quieres hacer, ya que yo ya lo tengo hecho.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Triggers

Publicado por Hernan (49 intervenciones) el 01/10/2002 03:48:58
La sentencia seria la siguiente
Create Trigger triggerborrado
ON Lecturas
For Delete
As
Insert into LECTURAS PARALELAS Select * from deleted

Esto debe andar a la perfección, igualmente tenes que tener copias de seguridad de la base de datos por si ocurren otros problemas, por ejemplo si se rompe el disco Rigido, etc.
Despues de que elimines algun registro de la tabla original (en este caso LECTURAS) puedes ver que dicho registro se copia automaticamente a la tabla LECTURAS PARALELAS (para eso realiza un Select * from LECTURAS PARALELAS)
Suerte, cualquier cosa avisame.
Saludos, Hernan.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Triggers

Publicado por Fernando Pena (49 intervenciones) el 01/10/2002 09:29:30
GRACIAS!! Funciona perfectamente !!!!!
No conocía la utilización de Triggers !!! pero me va a ser de mucha utilidad para establecerlos en tablas "críticas" - por ejemplo en tablas de apuntes contables,etc) -.
Es una medida más de seguridad ! . En cuanto a lo que comentabas sobre las copias, tengo tareas programadas de SQLServerAgent, que lanzan copias de la b.d.datos "master" y la b.d.d. del usuario todos los días. También tengo ARCServer, que lanza copias programadas a cinta DAT., parando previamente el Agente de SQLServer, y lanzándolo de nuevo tras efectuar la copia. Esto de los triggers no lo conocía. Gracias por todo de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar