@ Эш У меня была такая же проблема.Вот что мы сделали, чтобы обойти это ...
Кажется, что системные диаграммы хранятся в таблице "sysdiagrams".Итак, первое, что вам нужно сделать, это определить Diagram_id диаграммы, которую вы хотите скопировать.Запустите следующий запрос, чтобы перечислить их все.** Обратите внимание, что вам нужно заменить «SourceDB» на имя вашей базы данных.
-- List all database diagrams
SELECT * FROM [SourceDB].[dbo].sysdiagrams
Затем вы можете использовать INSERT для дублирования диаграммы из одной базы данных в другую, как показано ниже.** Обратите внимание, снова замените «SourceDB» именем базы данных, содержащей существующую диаграмму, а «DestinationDB» - именем базы данных, в которую вы хотите скопировать.Кроме того, @SourceDiagramId должен быть установлен для идентификатора, полученного выше.
-- 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
Затем вам нужно вручную установить "Principal_id" на 1.
-- 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
Это работает для нас, это выглядит довольноособенно хакер, поскольку диаграмма хранится целиком в одном двоичном поле «определение».
Ответ приходит от:
http://www.dotnetspider.com/resources/21180-Copy-or-move-database-digram-from-for.aspx