tool - ¿Cómo se migran los diagramas de la base de datos de SQL Server a otra base de datos?
sql azure migration tool download (10)
Mi equipo recientemente reconstruyó su base de datos de desarrollo SQL Server 2005 desde cero utilizando los archivos fuente TFS.
Después, tuvimos una buena base de datos limpia que coincidía más estrechamente con nuestros entornos de prueba y producción. Sin embargo, también perdimos los diagramas de base de datos que se habían creado a lo largo de los meses en la antigua base de datos de desarrollo.
¿Alguien sabe de una forma de exportar un diagrama de base de datos de SQL Server 2005 de una base de datos a otra que contiene las mismas tablas y objetos de esquema?
ACTUALIZAR:
Las respuestas de Valentin y CMS a continuación deberían funcionar bien. Acepté Valentin porque era primero y ya había empezado a usarlo.
Terminé creando una tabla temporal llamada ''robsysdiagrams'' y copié todos los datos en eso y usé el Asistente de publicación de base de datos de Microsoft SQL Server para crear las inserciones de datos en el disco. Luego cambié el nombre de robsysdiagrams a sysdiagrams en el script y lo ejecuté en la base de datos de destino. Todo funcionó bien
Rob, hay una tabla ''sysdiagrams'' que contiene las definiciones del diagrama. Intente crear la tabla e inserte los datos de la base de datos anterior. Deberia de funcionar.
HTH
Es bastante fácil, si tienes un servidor vinculado o si aún estás en la misma máquina:
USE newDB;
SET IDENTITY_INSERT sysdiagrams ON;
INSERT INTO sysdiagrams(name,principal_id,diagram_id,version,definition)
SELECT name,principal_id,diagram_id,version,definition
FROM oldDB..sysdiagrams;
SET IDENTITY_INSERT sysdiagrams OFF;
Una respuesta antigua pero elegante que encontré al buscar resolver el mismo problema: bcp
Extraer:
bcp YOUR_DATABASE..sysdiagrams out YOUR_DIAGRAM_NAME.bcp -c -T -S SERVERNAME
Importar:
(cd to the directory the diagram is in)
bcp YOUR_DATABASE..sysdiagrams in YOUR_DIAGRAM_NAME.bcp -c -T -S SERVERNAME
Mi problema es que a veces necesito dejar mi base de datos y volver a crearla. Tengo un script de generación completa que crea todo excepto los diagramas.
Mi solución es copiar temporalmente el diagrama en otra base de datos, y después de mi regeneración de la base de datos, cópielo de nuevo.
Lo curioso es que uno NO debe tratar de abrir el diagrama de copia, porque la otra base de datos donde se encuentra no tiene las estructuras de tabla de mi base de datos, por lo que SQL Server automáticamente al abrir borra todas las tablas en el diagrama q-:
Suponiendo que tiene acceso a ambas bases de datos dentro de una instancia de SQL Server.
Habilitar diagramas en la nueva base de datos:
En la nueva base de datos, haga clic en la carpeta "Diagramas de la base de datos". Sql Server Management Studio te pedirá que hagas diagramas. Si aprueba este paso, tendrá una tabla sysdiagrams en la base de datos.
Luego ejecuta lo siguiente:
INSERT INTO newdb.dbo.sysdiagrams
SELECT name, principal_id,[version], [definition]
FROM olddb.dbo.sysdiagrams
Puede copiar directamente como se contestó antes. Si desea ''respaldar'' solo el diagrama, puede hacerlo, vea mi respuesta en otra pregunta.
https://.com/a/26884146/951001
Creo que esta es la mejor manera:
USE DestinationDatabase
DELETE sysDiagrams
WHERE name IN ( SELECT name
FROM SourceDatabase.dbo.sysDiagrams )
SET IDENTITY_INSERT sysDiagrams ON
INSERT sysDiagrams
( name ,
principal_id ,
diagram_id ,
version ,
definition
)
SELECT name ,
principal_id ,
diagram_id ,
version ,
definition
FROM SourceDatabase.dbo.sysDiagrams
SET IDENTITY_INSERT sysDiagrams OFF
Puede guiar los diagramas ( enlace de archivo ) a un archivo .sql ...
Hice esto usando la función Exportar datos de MSSMS.
- Haga clic derecho en la base de datos.
- Elija Tareas> Exportar datos, que inicia un asistente.
- Configure ambas fuentes de datos. Usé SQL Server Native Client 11, pero probablemente otros funcionarán. Haga clic en Siguiente.
- Elija Copiar datos de una o más tablas o vistas (por defecto)
- De la lista, elija la tabla sysdiagrams.
- Elija Editar asignaciones. Asegúrate de que la opción "Habilitar inserción de identidad" esté marcada. Golpe ok
- Haga clic en siguiente, luego presione Finalizar para ejecutar.
Trabajado como un encanto.
Forma más segura de hacerlo:
merge into TcsDev1..sysdiagrams as Trg
using TcsDev2..sysdiagrams as Src
on Trg.name = Src.Name
when not matched by target then
insert (name, principal_id, [version], [definition])
values (src.name, src.[principal_id], src.[version], src.[definition] );