当前位置:  开发笔记 > 数据库 > 正文

如何将SQL Server数据库图表迁移到另一个数据库?

如何解决《如何将SQLServer数据库图表迁移到另一个数据库?》经验,为你挑选了5个好方法。

我的团队最近使用TFS源文件从头开始重建他们的SQL Server 2005开发数据库.

之后,我们有一个很好的干净数据库,更贴近我们的测试和生产环境.但是,我们也丢失了旧开发数据库中几个月创建的数据库图表.

有谁知道将SQL Server 2005数据库关系图从一个数据库导出到包含相同表和架构对象的另一个数据库的方法?

更新:

Valentin和CMS的答案都应该可以正常使用.我接受了Valentin的,因为它是第一次,我已经开始使用它了.

我最终创建了一个名为'robsysdiagrams'的临时表,并将所有数据复制到该表中,并使用Microsoft SQL Server数据库发布向导将数据插入到磁盘的脚本.然后我在脚本中将robsysdiagrams重命名为sysdiagrams并在目标数据库上运行它.一切都很好.



1> 小智..:

我在寻找解决同一问题的过程中遇到了一个古老而优雅的答案: bcp

提取:

bcp YOUR_DATABASE..sysdiagrams out YOUR_DIAGRAM_NAME.bcp -c -T -S SERVERNAME

要导入:

(cd to the directory the diagram is in)
bcp YOUR_DATABASE..sysdiagrams in YOUR_DIAGRAM_NAME.bcp -c -T -S SERVERNAME



2> Kim Major..:

假设您可以访问SQL Server实例中的两个数据库.

在新数据库中启用Diagrams:

在新数据库中,单击"Database Diagrams"文件夹.Sql Server Management Studio将提示您输入图表.如果您执行此步骤,则数据库中将包含sysdiagrams表.

然后执行以下操作:

INSERT INTO newdb.dbo.sysdiagrams 
     SELECT name, principal_id,[version], [definition]
       FROM olddb.dbo.sysdiagrams



3> Valentin Vas..:

Rob,有一个表'sysdiagrams',它包含图表定义.尝试创建表并从旧数据库插入数据.它应该工作.

HTH



4> CMS..:

您可以将图表(存档链接)编写为.sql文件的脚本 ...



5> Ardalan Shah..:

我认为这是更好的方法:

USE DestinationDatabase

DELETE  sysDiagrams
WHERE   name IN ( SELECT    name
              FROM      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    SourceDatabase.dbo.sysDiagrams

SET IDENTITY_INSERT sysDiagrams OFF

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有