Restaurar una base de datos en Sql Server
Este post se aplica a SQL Server 2005, 2008 y 2008 R2, para versiones anteriores de SQL Server no está testeado.
Hay veces cuando queremos restaurar una copia de seguridad de una base de datos proveniente de otro servidor (supongamos el de desarrollo al de producción) nos sale este error:
Restore failed for Server 'Instancia SQL Server'. (Microsoft.SqlServer.SmoExtended)
Additional Information:
System.Data.SqlClient.SqlError: The backup set holds a backup of a database other than the existing ‘nombre_base_datos' database. (Microsoft.SqlServer.Smo)
O lo que sería en castellano:
Error de Restaurar para Servidor 'Instancia SQL Server' (Microsoft.SQL.SmoExtended)
Informacion Adicional:
System.Data.SqlClient.SqlError: El conjunto de copia de seguridad contiene una copia de una base de datos distinta de la existente 'nombre_base_datos´. (Microsoft.SqlServer.Smo)
Esto ocurre porque las bases de datos son únicas en cada servidor y cuando restauras ese identificador se machaca con el que estas intentando actualizar, por eso a veces importamos bases de datos con distinto nombre y no nos da problemas mientras que otras veces aunque tengan el mismo nombre nos da el error anterior.
La solución es muy sencilla, en la misma ventana del Microsoft SQL Server Management Studio donde seleccionamos el archivo a importar debemos ir a la pestaña de opciones y activar el checkbox que dice Sobrescribir la base de datos existente (WITH REPLACE) o en inglés Overwrite the existing database (WITH REPLACE).
Os dejo las imágenes en ambos idiomas:
La única diferencia entre SQL Server 2008 y 2008 R2 es que en el segundo para acceder a esta pantalla primero tienes que elegir el archivo a restaurar sino te muestra en error del tipo: You must select a restore source.
Una vez realizado esto damos a aceptar y tendremos nuestra base de datos restaurada con el contenido deseado.
Comentarios