65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2024 年 4 月 29 日

CPOL

5分钟阅读

viewsIcon

5708

downloadIcon

14

本文档为开发人员提供了关于如何在 SQL Server 中为表及其直接关联表快速生成依赖关系实体关系图的概述。

目录

引言

本文档提供了关于如何使用自动生成表依赖关系图 SSMS (SQL Server Management Studio) 扩展来从起始表快速生成实体关系图,并将所有直接关联的表整合到一个图中的概述。

目的

您可能会发现,当您开始一个新项目时,由于表的数量众多,数据库模式可能会让人不知所措,而您目前正在处理一个表的子集。但您只想将该表的子集封装到一个图中,以便在不涉及其他实体的情况下理解它们之间的关系。您可以创建自己的图,但命名约定可能具有误导性,而且您可能会不小心遗漏所有相关的表!

范围

本文档的范围是传达从 SSMS 中开始自动生成子集表图所需的步骤。注意:目前该扩展仅设计用于与 Microsoft 的 SQL Server 数据库集成。

必备组件

  • 对 SQL 表关系(1:1、1:M、M:M、自引用)的理解
  • 对 SSMS 的理解
  • 您有权限将此扩展安装到 SQL Server 扩展文件夹。
  • 您已获得以下 SQL 权限
    1. GRANT VIEW ANY DEFINITION TO YourUserName;
    2. GRANT CREATE TABLE TO YourUserName;
    3. 对这些表的 SELECT 和 VIEW 权限
      1. Sys.Foreign_Keys
      2. Sys.Tables
      3. Sys.Foreign_Key_Columns
      4. Sys.Columns
      5. Information_Schema.Tables
      6. Information_Schema.Columns

对这些表执行一个简单查询,您就会知道是否需要从 DBA 那里获得额外权限。

  • SELECT * FROM Information_Schema.Tables
  • SELECT * FROM Sys.Tables

SSMS 扩展安装

直接从Microsoft Marketplace下载 VSIX 文件(这将始终是最新版本)。

注意:此阶段只下载,下载后请勿双击 VSIX 文件,因为这会尝试将扩展安装到 Visual Studio。

VSIX SSMS 版本 - Marketplace 下载

VXIS SSMS 18 下载

VXIS SSMS 19 下载

VXIS SSMS 20 下载

将 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 在图中并未体现这一点 - 在扩展中,您可以看到它们得到了正确体现(请参阅上方重新排列表节点部分中的图)。

 

© . All rights reserved.