@Ash Estaba teniendo el mismo problema. Esto es lo que hicimos para evitarlo ...
Parece que los diagramas del sistema se almacenan dentro de la tabla "sysdiagrams". Entonces, lo primero que debe hacer es determinar el diagram_id del Diagrama que desea copiar. Ejecute la siguiente consulta para listarlos todos. ** Tenga en cuenta que necesita reemplazar "SourceDB" con el nombre de su base de datos.
-- List all database diagrams
SELECT * FROM [SourceDB].[dbo].sysdiagrams
Luego puede usar INSERT para duplicar el diagrama de una base de datos a otra de la siguiente manera. ** Nota nuevamente, reemplace "SourceDB" con el nombre de la base de datos que contiene el diagrama existente y "DestinationDB" con el nombre de la base de datos en la que desea copiar. También @SourceDiagramId debe establecerse en el id recuperado anteriormente.
-- Insert a particular database diagram
DECLARE @SourceDiagramId int = 1
INSERT INTO [DestinationDB].[dbo].sysdiagrams
SELECT [name],diagram_id , version,definition from [SourceDB].[dbo].sysdiagrams
WHERE diagram_id = @SourceDiagramId
Luego debe establecer el "principal_id" en 1 manualmente.
-- Update the principal id (no idea why, but it set the owner as some asp_net user
UPDATE [DestinationDB].[dbo].sysdiagrams
SET principal_id = 1
Esto funcionó para nosotros parece bastante hacky sobre todo porque el diagrama se almacena en su totalidad en una sola "definición" binario campo.
respuesta proviene de:
http://www.dotnetspider.com/resources/21180-Copy-or-move-database-digram-from-for.aspx
Está funcionando bien, para mí también. Gracias. –