【发布时间】:2019-07-26 19:41:34
【问题描述】:
我正在尝试使用 SSMS 17 将 3 个数据库 (DB) 图从一个数据库导出到另一个数据库。我尝试了此处建议的解决方案:
How to export a SQL Server 2008 Database Diagram to another DB?
到目前为止,我发现的其他几个网站也推荐使用此解决方案,将表“sysdiagrams”的内容从源数据库复制到目标数据库(在我的情况下为 3 行)。
完成此操作后,我可以确认两个“sysdiagrams”表具有相同的内容,并且图表已导入目标数据库。然而,在每个导入的图表中,我只看到表格而不是关系。我觉得奇怪的是,在加载图表中的表格时,关系很快就可见了。加载所有表格后,它们就会消失。
有谁知道可能是什么问题?据我了解,此解决方案对于 SSMS 的早期版本是成功的。
任何帮助都非常感谢:)!
【问题讨论】:
-
检查您认为存在于目标数据库中的关系是否真的存在。当图表中有“线条”时,图表编辑器将按照您描述的方式运行;编辑器将查找每条“线”的关系,并将删除验证失败的“线”(在最初绘制它们之后)。
-
感谢您的回答 PeterB!
-
当我说缺少关系时,我的意思是连接表格的线条很快出现然后消失。在源数据库中,我使用线条创建了关系(不使用查询)。它们一直出现在源图中。据我了解,图表的所有信息都包含在“sysdiagrams”表中。可能还有其他一些必须更新的数据?什么可能导致验证失败?
-
我倾向于说缺少关系。您可以使用图表编辑器在两个表之间创建关系:它将在表之间创建一个关系,并在其中放置一个行图。通过您的图表复制操作,您仅复制所有 行,而不是实际的 关系。因此,当您在编辑器中查看复制的图表时,线条会消失,因为关系是数据库中内容的“真相”。您需要编写 ALTER TABLE ... ADD CONSTRAINT ... 来重新创建关系,或尝试使用数据库差异工具。
-
嗨彼得 B,我确认目标数据库中不存在关系。所以,你是对的。该图没有线条,因为没有可视化的关系。您能否创建一个答案以将其标记为“答案”?
标签: sql-server ssms database-diagramming