首页 > 解决方案 > SQL - 导出数据库图 - SSMS 17

问题描述

我正在尝试使用 SSMS 17 将 3 个数据库 (DB) 图从一个数据库导出到另一个数据库。我尝试了此处建议的解决方案:

如何将 SQL Server 2008 数据库图表导出到另一个数据库?

到目前为止,我在其他几个网站上也推荐使用此解决方案,将表“sysdiagrams”的内容从源数据库复制到目标数据库(在我的情况下为 3 行)。

完成此操作后,我可以确认两个“sysdiagrams”表具有相同的内容,并且图表已导入目标数据库。然而,在每个导入的图表中,我只看到表格而不是关系。我觉得奇怪的是,在加载图表中的表格时,这些关系很快就可见了。加载所有表格后,它们就会消失。

有谁知道问题可能是什么?据我了解,此解决方案对于 SSMS 的早期版本是成功的。

任何帮助都非常感谢:)!

标签: sql-serverssmsdatabase-diagramming

解决方案


检查目标数据库中是否确实存在关系(外键约束),因为如果它们不存在,那么图表编辑器的行为将与您描述的完全一样:最初它将绘制所有线条,然后开始查找每个 FK 关系line 表示,它会一一删除没有找到关系的行。

为了澄清,您可以使用图表编辑器通过在表之间绘制一条线来创建 FK 关系(然后编辑器在图表中创建一条线实际的 FK 约束)。但是使用像您这样的“复制图表”操作,您只复制线数据而不复制实际关系。

要在目标数据库中添加缺失的关系,您可以编写ALTER TABLE ... ADD CONSTRAINT ...语句,或者在目标数据库上再次使用图表编辑器,或者您可以尝试使用数据库差异工具。


推荐阅读