@Ash Ich hatte das gleiche Problem. Hier ist, was wir getan haben, um es zu umgehen ...
Es scheint, dass Systemdiagramme in der Tabelle "sysdiagrams" gespeichert sind. Das erste, was Sie tun müssen, ist die diagram_id des Diagramms, das Sie kopieren möchten. Führen Sie die folgende Abfrage aus, um sie alle aufzulisten. ** Beachten Sie, dass Sie "SourceDB" durch den Namen Ihrer Datenbank ersetzen müssen.
-- List all database diagrams
SELECT * FROM [SourceDB].[dbo].sysdiagrams
Dann können Sie INSERT verwenden, um das Diagramm von einer Datenbank in eine andere wie folgt zu duplizieren. ** Hinweis: Ersetzen Sie "SourceDB" erneut durch den Namen der Datenbank, die das vorhandene Diagramm enthält, und "DestinationDB" durch den Namen der Datenbank, in die Sie kopieren möchten. Auch @SourceDiagramId sollte auf die oben abgerufene ID gesetzt werden.
-- 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
Dann müssen Sie den "principal_id" auf 1 manuell einzustellen.
-- 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
Das funktionierte für uns ist es besonders schön Hacky scheint da das Diagramm vollständig in einer einzelnen binären Feld „Definition“ gespeichert ist.
Antwort kommt:
http://www.dotnetspider.com/resources/21180-Copy-or-move-database-digram-from-for.aspx
Es funktioniert gut, auch für mich. Vielen Dank. –