@Ash Avevo lo stesso problema. Ecco cosa abbiamo fatto per aggirare il problema ...
Sembra che i diagrammi di sistema siano memorizzati nella tabella "sysdiagrams". Quindi la prima cosa che devi fare è determinare il diagramma_id del diagramma che desideri copiare. Esegui la seguente query per elencarli tutti. ** Nota è necessario sostituire "SourceDB" con il nome del database.
-- List all database diagrams
SELECT * FROM [SourceDB].[dbo].sysdiagrams
Quindi è possibile utilizzare INSERT per duplicare il diagramma da un database a un altro come segue. ** Nota ancora sostituire "SourceDB" con il nome del Database contenente il diagramma esistente e "DestinationDB" con il nome del Database che si desidera copiare. Anche @SourceDiagramId dovrebbe essere impostato sull'ID recuperato in precedenza.
-- 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
Quindi è necessario impostare "principal_id" su 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
questo ha funzionato per noi sembra abbastanza hacky tanto più che il diagramma è memorizzato interamente in un unico campo "definizione" binario.
risposta arriva da:
http://www.dotnetspider.com/resources/21180-Copy-or-move-database-digram-from-for.aspx
Sta funzionando bene, anche per me. Grazie. –