Tengo un databse A. Tiene algunos datos. Creé una copia de seguridad para A como archivo A.bak . Luego creo una nueva base de datos vacía B. Y luego trato de restaurar B desde A.bak . Pero el Servidor SQL me dice el siguiente error:
El archivo 'C: \ SQL Directory \ DATA \ A.mdf' no se puede sobrescribir. Está siendo utilizado por la base de datos 'A'.
Pero si elimino A de SQL Server, la restauración está bien.
No entiendo por qué el SQL necesita escribir en el archivo de base de datos original mientras se restaura desde un archivo de copia de seguridad separado .
Gracias ~
fuente
Cuando restaura la copia de seguridad, puede especificar archivos de datos para restaurar.
Mira aquí y aquí . Puede usar la opción "Restaurar los archivos de la base de datos como" y el indicador "Sobrescribir la base de datos existente".
fuente
¿Está utilizando la opción REEMPLAZAR, ya sea en el comando TSQL o como una casilla de verificación seleccionada? Alternativamente, puede cambiar el nombre de los archivos y llamar a la base de datos de otra manera.
También le resultará un poco difícil restaurar a través de una base de datos que se está utilizando ..... necesitará eliminar los procesos que utilizan la base de datos; O suelte / elimine la base de datos primero, cerrando las conexiones (esta es probablemente la más fácil); O configure la base de datos que desea sobrescribir en algo como el modo de usuario restringido con reversión inmediata para que solo los DBA puedan usar; O incluso detenga SQL Server y reinícielo, esperemos que la restauración comience a funcionar antes de que alguien / nada use esa base de datos.
PD: haga una copia de seguridad de la base de datos que está a punto de sobrescribir, por si acaso.
fuente
Si alguien busca una solución en la GUI de Management Studio después de usar la
Options
página y laOverwrite the existing database (WITH REPLACE)
opción de activación :Simplemente haga clic en la
Restore As
columna y cambie los nombres de*.mdf
archivo y el*.ldf
archivo.fuente