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