¿Cómo puedo clonar una base de datos de SQL Server en el mismo servidor en SQL Server 2008 Express?
Tengo un sistema MS SQL Server 2008 Express que contiene una base de datos que me gustaría "copiar y cambiar el nombre" (con fines de prueba), pero no conozco una forma sencilla de lograrlo.
Noto que en la versión R2 de SQL Server hay un asistente para copiar la base de datos, pero lamentablemente no puedo actualizar.
La base de datos en cuestión tiene alrededor de un concierto. Intenté restaurar una copia de seguridad de la base de datos que quiero copiar en una nueva base de datos, pero no tuve suerte.
Instale Microsoft SQL Management Studio, que puede descargar de forma gratuita desde el sitio web de Microsoft:
Versión 2008
Microsoft SQL Management Studio 2008 es parte de SQL Server 2008 Express con servicios avanzados
Versión 2012
Haga clic en el botón de descarga y verifique
ENU\x64\SQLManagementStudio_x64_ENU.exe
Versión 2014
Haga clic en el botón de descarga y verifique MgmtStudio
64BIT\SQLManagementStudio_x64_ENU.exe
Abra Microsoft SQL Management Studio .
- Haga una copia de seguridad de la base de datos original en un archivo .BAK (db -> Tarea -> Copia de seguridad).
- Cree una base de datos vacía con un nuevo nombre (clon). Tenga en cuenta los comentarios a continuación, ya que esto es opcional.
- Haga clic para clonar la base de datos y abrir el cuadro de diálogo de restauración (ver imagen)
- Seleccione Dispositivo y agregue el archivo de copia de seguridad del paso 3.
- Cambiar destino a la base de datos de prueba
- Cambie la ubicación de los archivos de la base de datos, debe ser diferente a la original. Puede escribir directamente en el cuadro de texto, simplemente agregue postfix. (NOTA: el orden es importante. Seleccione la casilla de verificación y luego cambie los nombres de los archivos).
- Verifique CON REEMPLAZO y CON KEEP_REPLICATION
Haga clic derecho en la base de datos para clonar, haga clic en Tasks
, haga clic en Copy Database...
. Sigue al asistente y listo.
Puede intentar desconectar la base de datos, copiar los archivos con nuevos nombres en el símbolo del sistema y luego adjuntar ambas bases de datos.
En SQL:
USE master;
GO
EXEC sp_detach_db
@dbname = N'OriginalDB';
GO
En el símbolo del sistema (he simplificado las rutas de los archivos para este ejemplo):
copy c:\OriginalDB.mdf c:\NewDB.mdf
copy c:\OriginalDB.ldf c:\NewDB.ldf
En SQL nuevamente:
USE master;
GO
CREATE DATABASE OriginalDB
ON (FILENAME = 'C:\OriginalDB.mdf'),
(FILENAME = 'C:\OriginalDB.ldf')
FOR ATTACH;
GO
CREATE DATABASE NewDB
ON (FILENAME = 'C:\NewDB.mdf'),
(FILENAME = 'C:\NewDB.ldf')
FOR ATTACH;
GO