SQL 数据库图表提取

SQL DB Diagram Extract

我正在使用 SQL Server 2011 并且需要创建可视化表示(图表)。当前结构在表之间没有关系(外键),并且存在没有任何主键的表。

我已经尝试使用 SQL 数据库图表,但如果数据库本身没有发生变化,就无法在表之间添加任何关系。

我想在不做任何更改的情况下绘制关系。

是否有任何免费的 DB Diagram 软件可供我使用以实现此目的?我已经尝试过 DbVisualizer,但遇到了与 SQL.

中的图表相同的问题

对于您的情况,我会执行以下操作:

  1. 为您的数据库生成脚本(仅限模式)(正如@Serg 已经建议的那样)

    您可以使用 SSMS 执行此操作:右键单击您的数据库 - Tasks - Generate Scripts。 Select 所有 table,然后在 Advanced、select Schema onlyTypes of data to script。保存脚本并在某些测试环境中 运行 生成数据库的 schema only 副本。 (如果在同一台服务器上执行此操作,您可能需要稍微更改脚本,为新数据库指定另一个名称)

  2. 动态地尝试“猜测”外键关系ps

    因为你有 500+ tables,你可以尝试让 this script 工作 你(当然它需要一些测试和调整来适应你的 案例),但我在以下场景中使用了它并且它起作用了。

希望您有一个命名约定。在此脚本中,假定引用的键的名称相同,但这可以配置。

因此,我创建了以下 tables:

CREATE TABLE test (testid int identity(1,1) UNIQUE, description varchar(10))
CREATE TABLE test_item (id int identity(1,1) UNIQUE, testid int)

以及主键上的以下索引(通常,您也应该有它们)

CREATE CLUSTERED INDEX [ix_testid] ON [dbo].[test]([testid] ASC) 
CREATE CLUSTERED INDEX [ix_testitemid] ON [dbo].[test_item]([id] ASC) 

我没有创建外键关系。

接下来我 运行 来自 Automatically guessing foreign key constraints 文章的脚本,我设法得到以下结果:

执行从此脚本生成的所有 ALTER 语句,您可以在新数据库中创建关系 ps - 从该数据库生成图表,您就完成了! :)

ps。我建议您逐步测试它,例如先使用一个 table 然后添加其他并检查结果。 您可以尝试我的小测试的工作演示 here.

祝你好运!