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:

español

ingles

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

dennis ha dicho que…
gracias man, me salvaste
Anónimo ha dicho que…
Muchas gracias por compartir tu conocimiento nos ayudas bastante a varios! saludos
Anónimo ha dicho que…
gracias brother , eres de gran ayuda, sigue asi..
Anónimo ha dicho que…
Gracias!!! Me sirvió mucho.
Anónimo ha dicho que…
Muchas gracias por la respuesta.
Leonardo Luna Ruiz ha dicho que…
y en script como seria estoy haciendo un aplicacion en javaFX y necesito hacer backup desde mi aplicación
Rodrigo ha dicho que…
¡¡ Muchas gracias !!
Anónimo ha dicho que…
gracias men !! excelente apote