una tool subir pasos para migracion datos data sql-server database sql-server-2005

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



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] );