SQL Server 2005,如何将Database Diagram复制到另一台服务器

时间:2010-07-22 14:48:12

标签: sql sql-server-2005 tsql ssms

有没有办法将SQL Server数据库图表复制到另一台服务器?

我找到了this并进行了修改,只复制了一张图表:

INSERT INTO dbB.dbo.sysdiagrams 
SELECT [name],[principal_id],[version],[definition]
FROM dbA.dbo.sysdiagrams
Where name = 'MyDiagramName'

但我需要将其复制到另一个服务器(开发到生产)。

我不想创建链接服务器来执行此操作。 ( 更新说明 )背后的原因是我希望将图表包含在升级脚本中。我对数据库进行了更改以支持新版本(新表等),我希望该图表是升级脚本的一部分。所以我最好把它放在SQL脚本中。如果一个分离的文件随后手动导入,它可以完成这项工作,但这不是最好的。

所以我需要将图表定义'保存'到一个文件以某种方式在另一台服务器上恢复它。

3 个答案:

答案 0 :(得分:5)

答案 1 :(得分:2)

首先:从Source Server内的Destination Server创建一个链接服务器。

对于创建Link Server,请使用this Link

第二:使用此

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

答案 2 :(得分:-1)