Tengo un sistema MS SQL Server 2008 Express que contiene una base de datos que me gustaría 'copiar y renombrar' (con fines de prueba) pero no conozco una forma simple de lograrlo.
Noté que en la versión R2 de SQL Server hay un asistente de copia de base de datos, pero lamentablemente no puedo actualizar.
La base de datos en cuestión es 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 sin suerte.
Respuestas:
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 .
fuente
Haga clic derecho en la base de datos para clonar, haga clic
Tasks
, haga clicCopy Database...
. Sigue al mago y listo.fuente
Puede intentar separar la base de datos, copiar los archivos a nuevos nombres en el símbolo del sistema y luego adjuntar ambos DB.
En SQL:
En el símbolo del sistema (he simplificado las rutas de archivo en aras de este ejemplo):
En SQL nuevamente:
fuente
select * from OriginalDB.sys.sysfiles
para encontrar la ubicación de los archivos de la base de datos.Permission denied
en el.mdf
archivo. No lo necesito ahora, solo necesitaba una copia de seguridad de la base de datos original, para poder sobrescribir la base de datos original con ella más tarde, solo tengo curiosidad de por qué recibo ese error.exec sp_helpdb @dbname='TEMPDB';
Resulta que había intentado restaurar desde una copia de seguridad incorrectamente.
Inicialmente creé una nueva base de datos y luego intenté restaurar la copia de seguridad aquí. Lo que debería haber hecho, y lo que funcionó al final, fue abrir el diálogo de restauración y escribir el nombre de la nueva base de datos en el campo de destino.
Entonces, en resumen, restaurar desde una copia de seguridad hizo el truco.
Gracias por todos los comentarios y sugerencias chicos
fuente
Este es el guión que uso. Un poco complicado pero funciona. Probado en SQL Server 2012.
fuente
SET @sourceDb_log = (SELECT files.name FROM sys.databases dbs INNER JOIN sys.master_files files ON dbs.database_id=files.database_id WHERE dbs.name=@sourceDb AND files.type=1)
una variable separada para @sourceDb_data con una consulta similar (sustituyendofiles.type=0
). HTH!Ninguna de las soluciones mencionadas aquí funcionó para mí: estoy usando SQL Server Management Studio 2014.
En su lugar, tuve que desmarcar la casilla de verificación "Hacer una copia de seguridad del registro de cola antes de restaurar" en la pantalla "Opciones": en mi versión está marcada por defecto y evita que se complete la operación de restauración. Después de desmarcarlo, la operación de restauración continuó sin problemas.
fuente
Con MS SQL Server 2012, debe realizar 3 pasos básicos:
Primero, genere un
.sql
archivo que contenga solo la estructura de la base de datos fuente.sql
archivo localmenteSegundo, reemplace el DB de origen con el de destino en el
.sql
archivoFinalmente, complete con datos
Data Source=Mehdi\SQLEXPRESS;Initial Catalog=db_test;User ID=sa;Password=sqlrpwrd15
Estás listo.
fuente
En SQL Server 2008 R2, haga una copia de seguridad de la base de datos como un archivo en una carpeta. Luego, elija la opción de restauración que aparece en la carpeta "Base de datos". En el asistente, ingrese el nuevo nombre que desea en la base de datos de destino. Y elija restaurar desde el archivo y use el archivo que acaba de crear. Lo hice y fue muy rápido (mi DB era pequeña, pero aún así) Pablo.
fuente
Si la base de datos no es muy grande, puede mirar los comandos 'Script Database' en SQL Server Management Studio Express, que se encuentran en un menú contextual fuera del elemento de la base de datos en el explorador.
Puedes elegir qué escribir. quieres los objetos y los datos, por supuesto. Luego guardará la secuencia de comandos completa en un solo archivo. Luego puede usar ese archivo para volver a crear la base de datos; solo asegúrese de que el
USE
comando en la parte superior esté configurado en la base de datos adecuada.fuente
La solución, basada en este comentario: https://stackoverflow.com/a/22409447/2399045 . Simplemente configure: nombre de la base de datos, carpeta temporal, carpeta de archivos db. Y después de ejecutar, tendrá la copia de DB con Nombre en formato "sourceDBName_yyyy-mm-dd".
fuente
Script basado en la respuesta de Joe ( separar, copiar archivos, adjuntar ambos ).
No es necesario, pero tal vez acceso denegado error al ejecutar.
@dbName
y@copyDBName
variables antes.fuente
Puede crear una nueva base de datos y luego ir a tareas, importar datos e importar todos los datos de la base de datos que desea duplicar a la base de datos que acaba de crear.
fuente
Otra forma de hacer el truco usando el asistente de importación / exportación , primero crea una base de datos vacía, luego elige la fuente que es tu servidor con la base de datos de origen, y luego en el destino elige el mismo servidor con la base de datos de destino (usando la base de datos vacía creaste al principio), luego presiona finalizar
Creará todas las tablas y transferirá todos los datos a la nueva base de datos,
fuente