SQL Server 2005, как скопировать диаграмму базы данных на другой сервер
Есть ли способ скопировать диаграмму базы данных SQL Server на другой сервер?
Я нашел этот и модифицировал его, чтобы скопировать только одну диаграмму:
INSERT INTO dbB.dbo.sysdiagrams
SELECT [name],[principal_id],[version],[definition]
FROM dbA.dbo.sysdiagrams
Where name = 'MyDiagramName'
Но мне нужно скопировать его на другой сервер (Development to Production).
Я не хочу создавать связанный сервер для этого. (Обновленное объяснение). Причина в том, что я хочу включить диаграмму в обновление script. Я внес изменения в базу данных для поддержки новой версии (новые таблицы и т.д.), И я хочу, чтобы диаграмма была частью обновления script. так что лучше всего, если я могу поместить это в SQL script. Если после этого отдельный файл будет импортирован вручную, он может выполнить эту работу, но это не самое лучшее.
Поэтому мне нужно "сохранить" определение диаграммы в файле, чтобы восстановить его на другом сервере.
Ответы
Ответ 1
Просто нашел это решение.
В этой статье содержится код для создания хранимой процедуры, которая генерирует SQL Server Script для воссоздания диаграмм. Поэтому вы просто сохраняете вывод хранимой процедуры в файле .SQL и запускаете ее на другом сервере.
Проблема состоит в том, чтобы преобразовать Varbinary To String (Varchar) в Hex, чтобы использовать его в запросе на вставку/обновление. Но это хорошо объяснено в ссылке...
Ответ 2
Сначала: создайте один сервер ссылок из Source Server
внутри Destination Server
.
Для создания Link Server
используйте эту ссылку
Второе: используйте это
USE DestinationDatabase
DELETE sysDiagrams
WHERE name IN ( SELECT name
FROM <LinkServerName>.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 <LinkServerName>.SourceDatabase.dbo.sysDiagrams
SET IDENTITY_INSERT sysDiagrams OFF
Ответ 3
Этот учебник/пример объяснит это
http://www.sharpdeveloper.net/content/archive/2008/04/19/copy-a-database-diagram-to-another-database.aspx