4 técnicas para recuperar tablas perdidas debido a una operación DROP Table
Una tabla accidentalmente borrada puede ser recuperada de muchas maneras. La elección de la técnica depende de los recursos disponibles para la recuperación. La primera elección es usualmente una copia de seguridad de la base de datos. Pero incluso si usted tiene una, la tabla borrada puede ser aún recuperada (en algunos casos incluso más rápidamente que con una copia de seguridad).
Veamos cómo esto puede ser hecho.
Si tiene una copia de seguridad completa de la base de datos, o una cadena de copias de seguridad diferenciales que contienen la tabla borrada:
En SQL Server Management Studio, haga clic derecho en la base de datos, seleccione Tasks y luego Generate Scripts
En la lista de objetos, seleccione la tabla borrada
En el diálogo Set Scripting Options especifique la ruta del archivo y el nombre
CREATE TABLE [dbo].[Orders]( [Id] [int] NOT NULL, [OrderNo] [int] NOT NULL, [CustomerId] [int] NULL, [OrderDate] [date] NULL ) ON [PRIMARY] GO INSERT [dbo].[Orders] ([Id], [OrderNo], [CustomerId], [OrderDate])
VALUES (1, 1000, 35, CAST(0x2A370B00 AS Date)) ALTER TABLE [dbo].[Orders] ADD DEFAULT (getdate()) FOR [OrderDate] GO
Este método es simple y sencillo, siendo el único contratiempo que no es aplicable si no hay una copia de seguridad de la base de datos. También, si la base de datos es grande, la restauración de la copia de seguridad puede consumir mucho tiempo.
Hay otro método donde una copia de seguridad de la base de datos es necesaria, pero no tiene que ser restaurada para recuperar tablas perdidas debido a una operación DROP Table.
ApexSQL Diff es una herramienta de sincronización y comparación para bases de datos SQL Server. Detecta diferencias entre objetos de bases de datos, genera reportes detallados y sincroniza bases de datos en vivo y versionadas, copias de seguridad de bases de datos, snapshots y carpetas de scripts.
Seleccione la base de datos en vivo y el tipo de autenticación
En Object filter, seleccione Use filter para las tablas
Para que todos los objetos que dependen de la tabla borrada estén correctamente codificados – desencadenadores, tablas, etc., deje todos los tipos de objetos seleccionados.
En el panel Tables filter, seleccione sólo la tabla borrada
Haga clic en Compare
ApexSQL Diff mostrará los resultados de la comparación en la cuadrícula principal. La tabla borrada y los objetos que dependen de ella, si hay alguno, serán mostrados en la cuadrícula.
En el paso Output options, seleccione Create a synchronization en Output action
El script generado será mostrado en el editor interno de ApexSQL Diff. Revíselo, modifíquelo si es necesario, y ejecútelo
La tabla y los objetos dependientes seleccionados serán recreados.
Como ApexSQL Diff puede leer copias de seguridad de bases de datos SQL Server, la recuperación de la tabla es más rápida cuando las copias de seguridad no están siendo restauradas primero. Los objetos que dependen de la tabla borrada son recuperados sin problemas. La cuadrícula principal muestra el script y las diferencias para cada objeto, lo cual provee granularidad y ayuda en decidir qué objetos seleccionar para la sincronización.
SI usted no tiene una copia de seguridad de la base de datos SQL, este método no es aplicable. También, sólo la estructura de la tabla puede ser recuperada.
Incluso si no hay una copia de seguridad de la base de datos SQL que contenga la tabla borrada, la recuperación de tablas perdidas debido a una operación DROP Table puede ser hecha.
ApexSQL Log es un visor de registros de transacciones de SQL Server que audita, revierte o reproduce cambios de datos y objetos. Restaura objetos y datos eliminados o modificados, capturando información acerca del usuario, la aplicación y el anfitrión usados para hacer cada cambio.
En la pestaña Operations, des-seleccione todas las operaciones de datos (DML) y esquema (DDL). Seleccione sólo DROP Table en la lista de Schema operations
Seleccione la tabla que desea recuperar, seleccione la opción Create undo script del menú
Una vez que el script deshacer ha sido creado, revíselo y ejecútelo
Las ventajas de este método son que no es necesaria una copia de seguridad de la base de datos. Como una sentencia DROP TABLE no crea un registro para cada fila de la tabla en el registro de transacciones en línea, este método puede recuperar sólo la estructura de la tabla.
Note que si la base de datos está en el modelo de recuperación simple, las transacciones podrían haber sido sobrescritas. En este caso, mientras más pronto ejecute ApexSQL Log después de que la tabla fue borrada, mayores serán las posibilidades de una recuperación exitosa.
Como ApexSQL Recover lee tanto archivos de datos (MDF) como de registros de transacciones (LDF), puede recuperar una tabla borrada incluso cuando la transacción ya no existe en el archivo LDF.
ApexSQL Recover es una herramienta de recuperación de SQL Server que recupera datos eliminados, truncados, corruptos o dañados. Recupera objetos y datos perdidos debido a operaciones drop y restaura BLOBS tanto eliminados como en línea como archivos.
Seleccione la opción de recuperación de datos From DROP TABLE operation
Si hay copias de seguridad de registros de transacciones creadas después de que la tabla fue borrada, o un registro de transacciones suelto que contiene la transacción responsable para el borrado, haga clic en Add transaction logs
En el siguiente paso, Añada las copias de seguridad de registros de transacciones y los registros de transacciones sueltos
Una vez que el script de recuperación ha sido generado, revíselo, encuentre las tablas que desea recuperar y ejecute
Gracias a que puede leer archivos tanto MDF como LDF, ApexSQL Recover tiene más posibilidades de una recuperación exitosa. De todas maneras, si la información acerca de la tabla borrada es sobrescrita en los archivos MDF y LDF, ApexSQL Recover no puede ayudar.
Tener copias de seguridad de la base de datos es un buen punto de partida, pero puede no ser ser el más rápido. Con copias de seguridad, hay diferentes métodos – los que requieren que una copia de seguridad se restaure primero, y por tanto requieren más tiempo, y los otros que pueden leer copias de seguridad.
Si usted no tiene una copia de seguridad de la base de datos, usted puede recuperar una tabla borrada de los archivos de registros de transacciones y de la base de datos SQL. Cuando se trata de recuperar desde una base de datos en el modelo de recuperación simple, puede que falle dado que la transacción drop table puede haber sido sobrescrita. Incluso así, la recuperación es posible desde el archivo MDF
Traductor: Daniel Calbimonte
© 2025 Quest Software Inc. ALL RIGHTS RESERVED. Términos de uso Privacidad Cookie Preference Center