繁体   English   中英

SQL Server 2005,如何将数据库关系图复制到另一台服务器

[英]SQL Server 2005, how to copy a Database Diagram to another server

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

我发现了这一点,并对其进行了修改,仅复制了一张图:

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

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

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

因此,我需要将图定义“保存”到文件中以某种方式在另一台服务器上还原。

刚找到这个解决方案

在本文中,有用于创建存储过程的代码,该存储过程生成SQL Server脚本以重新创建图。 因此,您只需将存储过程的输出保存在.SQL文件中,然后在另一台服务器上运行它即可。

问题是将Varbinary转换为十六进制字符串(Varchar),以便能够在插入/更新查询中使用它。 但这在链接中有很好的解释...

首先:从Destination Server内部的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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM