SQL 表依赖关系图生成器 (SSMS 18, 19 & 20)





5.00/5 (2投票s)
本文档为开发人员提供了关于如何在 SQL Server 中为表及其直接关联表快速生成依赖关系实体关系图的概述。
目录
引言
本文档提供了关于如何使用自动生成表依赖关系图 SSMS (SQL Server Management Studio) 扩展来从起始表快速生成实体关系图,并将所有直接关联的表整合到一个图中的概述。
目的
您可能会发现,当您开始一个新项目时,由于表的数量众多,数据库模式可能会让人不知所措,而您目前正在处理一个表的子集。但您只想将该表的子集封装到一个图中,以便在不涉及其他实体的情况下理解它们之间的关系。您可以创建自己的图,但命名约定可能具有误导性,而且您可能会不小心遗漏所有相关的表!
范围
本文档的范围是传达从 SSMS 中开始自动生成子集表图所需的步骤。注意:目前该扩展仅设计用于与 Microsoft 的 SQL Server 数据库集成。
必备组件
- 对 SQL 表关系(1:1、1:M、M:M、自引用)的理解
- 对 SSMS 的理解
- 您有权限将此扩展安装到 SQL Server 扩展文件夹。
- 您已获得以下 SQL 权限
- GRANT VIEW ANY DEFINITION TO YourUserName;
- GRANT CREATE TABLE TO YourUserName;
- 对这些表的 SELECT 和 VIEW 权限
- Sys.Foreign_Keys
- Sys.Tables
- Sys.Foreign_Key_Columns
- Sys.Columns
- Information_Schema.Tables
- Information_Schema.Columns
对这些表执行一个简单查询,您就会知道是否需要从 DBA 那里获得额外权限。
SELECT * FROM Information_Schema.Tables
SELECT * FROM Sys.Tables
SSMS 扩展安装
直接从Microsoft Marketplace下载 VSIX 文件(这将始终是最新版本)。
注意:此阶段只下载,下载后请勿双击 VSIX 文件,因为这会尝试将扩展安装到 Visual Studio。
VSIX SSMS 版本 - Marketplace 下载
将 VSIX 文件复制到您的 SSMS 扩展文件夹
在将 VSIX 文件复制到您的环境中之前,请关闭并保存您在 SSMS 中的所有工作。
将 VSIX 扩展复制到您的 SSMS 的扩展文件夹(我将演示 SSMS 19 的操作,但对于其他版本的 SSMS,操作相同 - 您的路径可能略有不同)。
SSMS 18 扩展文件夹:
C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Extensions
SMS 19 扩展文件夹:
C:\Program Files (x86)\Microsoft SQL Server Management Studio 19\Common7\IDE\Extensions\
SMS 20 扩展文件夹:
C:\Program Files (x86)\Microsoft SQL Server Management Studio 20\Common7\IDE\Extensions\
VSIX 文件已复制到 SSMS 19 扩展文件夹
Windows 文件夹权限
要在 SSMS 中使用该扩展,您需要解压缩 VSIX 文件,但要做到这一点,您需要对扩展文件夹具有写入权限。
将 VSIX 文件解压缩到扩展文件夹中的默认文件夹TableDiagramExtension。
这将创建新文件夹,如下所示
注意:重启 SSMS 以加载新扩展。
创建图
连接到SSMS 20时,Microsoft 对登录屏幕进行了重大更改,现在您必须选择加密选项 - 选择可选以确保扩展按预期工作。对于 SSMS 18 和 19,正常连接即可。
连接到您希望生成图的 SQL Server 实例。SQL Server 实例应默认在 SQL Server Management Objects (SMO) 选项卡中选中。
然后,点击菜单选项工具→生成表关系图,以调出图对话框。
在这里,您可以选择您的 SQL 数据库,然后根据您的数据库选择项填充“表”下拉列表。
选择数据库
将显示所有非系统相关的数据库。
选择表
将显示所有非系统相关的表。
紧凑视图
选择一个表作为图的基础后,“图类型”按钮将启用。您可以从中选择生成简单(紧凑)布局或扩展布局(带数据类型)。
紧凑布局图示例
注意:注意 ProductCategory 表上的自连接(循环连接器)。
扩展视图
用户可以从下拉按钮中选择扩展视图。
扩展布局图示例(显示数据类型)
在扩展视图中,您还可以获得每个实体的(以及适当情况下的长度)数据类型。
重新排列表节点
您可以移动/拖动表节点以使图具有更好的视觉美感。只需单击一个表并按住鼠标右键,然后移动鼠标,连接线将跟随您的表。
当鼠标指针变为“手”图标时(鼠标悬停在图的空白区域上方),您还可以拖动整个图。
导出图
如果您希望与团队共享您的图或将其保存以备将来参考,只需单击“导出”下拉按钮并选择您希望保存图的格式,系统将提示您选择保存文件的位置(文件扩展名为 .edd)。
打印图
如果您希望拥有图的物理副本,请单击“打印”按钮,将显示“打印预览”对话框,您可以在其中正常打印。
在多个服务器实例之间切换
您可以通过(关闭依赖关系图模态框(如果已打开))在其中一个实例的节点树中选择一个对象,然后再次从菜单中打开生成表关系图,轻松为多个 SQL Server 实例创建图。
增强型 ER 图
在 Microsoft 生成的图中,您会发现没有显示 FK 图标,这在试图掌握表的子集关系时可能是一个障碍。以下是 Microsoft ERD 的示例(您需要知道哪些表相互关联才能创建 - 加入新团队/项目时并非总是如此) - 您可以看到ShipToAddressId 和BillToAddressId FK 在图中并未体现这一点 - 在扩展中,您可以看到它们得到了正确体现(请参阅上方重新排列表节点部分中的图)。