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

Recuperar fila eliminada

Estas en el tema de Recuperar fila eliminada en el foro de SQL Server en Foros del Web. Hola amigos. Saludos a todos y espero que se encuentren bien. La razón de este post es pedirles que me aclaren algo. Hasta donde mis ...
  #1 (permalink)  
Antiguo 08/03/2006, 08:27
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 8 meses
Puntos: 1
Recuperar fila eliminada

Hola amigos.
Saludos a todos y espero que se encuentren bien.

La razón de este post es pedirles que me aclaren algo.
Hasta donde mis pocos conocimientos me lo permiten, cuando se
elimina un registro de una tabla en ms sql server el mismo no
se puede recuperar. Por ejemplo: cuando hago un
Delete From tabla Where campo = '111' este registro ya no lo puedo
recuperar nisiquiera puedo verlo en alguna parte. Bueno esto es lo que
yo tengo entendido, pero en estos días una persona me estuvo diciendo
que eso si era posible, que cuando eliminabas un registro había una tabla
en donde podías ver al mismo. Esa misma persona no sabía como hacerlo,
dijo que fue lo que le dijeron hace algún tiempo en un curso que hizo.
Leyendo en la ayuda de Transact-SQL encontré lo siguiente:
"La instrucción DELETE quita una a una las filas y graba una entrada en el registro de transacciones"
Qué quiere decir esto? Que en el registro de transacciones se guardan las filas eliminadas? Es ahí donde
se encuentran las filas eliminadas? mmm...no estoy muy claro
Me gustaría que ustedes me aclararan si esto es cierto y de ser así como hago
para recuperar dicho registro.

Saludos a todos y gracias.
  #2 (permalink)  
Antiguo 08/03/2006, 12:29
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 10 meses
Puntos: 98
Hola Vanessita, esto no es posible hasta donde yo se, al menos que tengas el procediemiento en una transacción:

BEGIN TRAN
--código erroneo
ROLLBACK TRAN
--te salvaste! je je

Y la verdad no se si sería posible con un trigger on delete, supongo que si, a ver si se aparece alguien que nos saque de la duda.

Saludos!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 08/03/2006, 12:36
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 19 años
Puntos: 3
SQL Server mantiene un registro de transacciones que sirve para llevar alli todas las operacones de actualizaciones, inserciones y eliminaciones que ocurren en la bases de datos.
El archivo de log o registro de transacciones se usa en conjunto con la copia de seguridad de una base de datos y se utilizan para poder restaurar una base a un estado anterior consistente.


Las restauraciones de bases se hacen a nivel de base completa, base diferencial, o bien hay restauraciones incrementales que se hacen utilizando uno o varios respaldos del log.... estas operaciones se usan para casos en donde hay errores de consistencia de datos por parte del usuario, fallas de disco o fallas en el motor; no esta pensado para recuperar registros en forma unitaria... es un proceso complejo que esta dentro de las tareas de mantenimiento..... es mucho mas largo de explicar todo el asunto de backup/restore pero te dije lo justo sólo para que te hagas una idea de como y para que se usa el archivo de log

Espero te ayude
  #4 (permalink)  
Antiguo 08/03/2006, 18:05
Avatar de Carcharhinus  
Fecha de Ingreso: septiembre-2004
Mensajes: 264
Antigüedad: 20 años, 2 meses
Puntos: 0
Hola, la manera en que pudieses recuperar datos eliminados, sin tener un bakup jee, seria mediante el LOG de la base de datos (archivo .ldf).
Existen herramientas que te permiten leer estos archivos y algunas hasta tienen la capacidad de "restaurar" los registros que se ayan eliminado (DELETE) o agragados (INSERT UPDATE) etc.
Aqui esta una muy buena que te permite leer el archivo de manera online o desde un respaldo ApexLOG. Saludos y espero te ayude.
__________________
"Never attribute to malice that which can be adequately explained by stupidity."
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 22:29.