sql-server - SQL - 导出数据库图 - SSMS 17
问题描述
我正在尝试使用 SSMS 17 将 3 个数据库 (DB) 图从一个数据库导出到另一个数据库。我尝试了此处建议的解决方案:
如何将 SQL Server 2008 数据库图表导出到另一个数据库?
到目前为止,我在其他几个网站上也推荐使用此解决方案,将表“sysdiagrams”的内容从源数据库复制到目标数据库(在我的情况下为 3 行)。
完成此操作后,我可以确认两个“sysdiagrams”表具有相同的内容,并且图表已导入目标数据库。然而,在每个导入的图表中,我只看到表格而不是关系。我觉得奇怪的是,在加载图表中的表格时,这些关系很快就可见了。加载所有表格后,它们就会消失。
有谁知道问题可能是什么?据我了解,此解决方案对于 SSMS 的早期版本是成功的。
任何帮助都非常感谢:)!
解决方案
检查目标数据库中是否确实存在关系(外键约束),因为如果它们不存在,那么图表编辑器的行为将与您描述的完全一样:最初它将绘制所有线条,然后开始查找每个 FK 关系line 表示,它会一一删除没有找到关系的行。
为了澄清,您可以使用图表编辑器通过在表之间绘制一条线来创建 FK 关系(然后编辑器在图表中创建一条线和实际的 FK 约束)。但是使用像您这样的“复制图表”操作,您只复制线数据而不复制实际关系。
要在目标数据库中添加缺失的关系,您可以编写ALTER TABLE ... ADD CONSTRAINT ...
语句,或者在目标数据库上再次使用图表编辑器,或者您可以尝试使用数据库差异工具。
推荐阅读
- bash - bash:使 grep 命令忽略带有某些特殊字符的行 $(
- javascript - TypeError:无法读取未定义的nodejs express mvc的属性'render'
- sql - 每个组都有多个结果的 max 函数
- regex - XSLT 中的正则表达式子字符串
- pine-script - 需要帮助学习错误并将 Pinescript V3 转换为 V4
- python - 如何从 a 标签中提取 href
- azure - 使用 ADAL 进行 Microsoft Teams 选项卡身份验证 - 无法在 Teams DESKTOP 应用程序中获取令牌
- python-3.x - 无法找到凭据芹菜
- javascript - alpinejs 的 x-cloak 问题
- c# - 测试 api 时出现这个奇怪的错误