我试图使用SSMS 17将3个数据库(DB)图从一个数据库导出到另一个数据库。我尝试了这里建议的解决方案:
How to export a SQL Server 2008 Database Diagram to another DB?
在目前为止我发现的其他几个网站中也推荐使用此解决方案,将表“sysdiagrams”的内容从源DB复制到目标DB(在我的情况下为3行)。
执行此操作后,我可以确认两个“sysdiagrams”表具有相同的内容,并且图表将导入目标DB。然而,在每个导入的图表中,我只看到表格而不是关系。我发现奇怪的是,在加载图表中的表时,这些关系很快就会显现出来。加载完所有表后,它们就会消失。
有谁知道这个问题是什么?据我所知,这个解决方案对SSMS的早期版本是成功的。
任何帮助都非常感谢:)!
检查目标数据库中是否存在关系(外键约束),因为如果它们不存在,那么图编辑器将完全按照您的描述运行:最初它将绘制所有行,然后它开始查找每个FK关系line表示,它将逐个删除未找到关系的行。
为了澄清,您可以使用图编辑器通过在表之间绘制一条线来创建FK关系(编辑器然后在图中创建一条线和实际的FK约束)。但是通过像您这样的“复制图”操作,您只复制行数据而不复制实际关系。
要在目标数据库中添加缺少的关系,可以编写ALTER TABLE ... ADD CONSTRAINT ...
语句,或者在目标数据库上再次使用图编辑器,或者可以尝试使用数据库差异工具。