从现有的模式(SQL Server)生成表关系图

204

有没有一种方法可以根据与数据库的连接,生成显示现有表格及其关系的图表?

这适用于SQL Server 2008 Express版本。


有一个免费的工具名为 SchemaSpy ,可以轻松完成此操作。但是,需要进行一些设置。我在这里详细说明了步骤:http://blog.kmonsoor.com/generate-er-diagram-from-sql-database/ - kmonsoor
不错:60个DB反向工程工具(请参见左侧的筛选器)- https://dbmstools.com/categories/database-diagram-tools/sqlserver - George Birbilis
9个回答

162

是的,你可以使用 SQL Server 2008 本身,但需要安装 SQL Server Management Studio Express(如果未安装)。只需右键单击“数据库图表”并创建新图表。选择现有的表格,如果你已经正确指定了表格中的参考内容,你就能看到所选表格的完整图表。

如需进一步了解,请查看入门SQL Server数据库图表


2
有没有办法在SQL Server Compact 3.5中实现这个? - Scott Anderson
一旦添加所有必要的表格,您应该能够看到所有现有的关系。 - Vishwas S L

56

尝试使用DBVis - 在https://www.dbvis.com/download下载 - 有一个专业版(不必要)和一个开放版本,应该足够了。

你需要做的就是获取适用于SQL Server的正确JDBC-数据库驱动程序,该工具通过仅需按下一个按钮即可显示表格和正交、分层、循环等引用。我现在已经使用免费版本多年了。


1
这很容易设置,并且生成的图表比SQL Server工具产生的更易读。+1 - davidtbernal
如果您已经在运行JDBC,则非常容易设置。否则,可能会遇到所有熟悉的配置问题 - ruffin
如果您有适当的外键关系,它可以很好地工作。 - Phil Hord
除了这个答案之外,如果你遇到连接问题,请查看这个链接 https://dba.stackexchange.com/questions/62165/i-cant-connect-to-my-servers-sql-database-via-an-ip-address。其他的JDBC信息可以在这里找到 https://www.dbvis.com/features/sqlserver-database-drivers/,如果需要更新JDBC驱动程序,请参考这个链接 https://www.microsoft.com/en-us/download/details.aspx?id=57175。 - Maytham Fahmi
在指定数据库端口时,我使用了 SQL Server 的动态端口。常规端口 1433 对我无效。 - Harvey Darvey

13

此链接现在重定向到主页:https://www.solyp.com/。看起来已经过时了。 - R. Schreurs

8

虽然它不能完成任务(可视化数据库模式),但还是很酷的。我希望有类似的东西可以从文本描述中生成计算机网络的整洁图表... - Ivan

4

为什么不直接使用内置在SQL Server中的数据库图表功能呢?


6
有时候并不可用,因为某些版本的 SSMS 和 SQL 受到许可限制而无法使用。 - Piotr Kula
或者你知道的,你可以在GNU/Linux或MacOS上没有任何许可证,只需连接凭据。 - helvete

2

2

如果您创建了数据库图表,Visio Professional具有数据库反向工程功能。它不是免费的,但在大多数公司中普及度较高,应该很容易获取。

请注意,Visio 2003与SQL2005或SQL2008不兼容反向工程 - 您需要使用2007版本。


7
很遗憾,Visio 2013中已经取消了这个功能。 - Kjell-Åke Gafvelin

1

SchemaCrawler for SQL Server 可以借助 GraphViz 生成数据库图表。外键关系将被显示(甚至可以使用命名约定推断),并且可以使用正则表达式排除表和列。


1
“使用命名约定推断外键关系”,在大多数实际业务情况下完全不适用。 - Ivan
2
你会惊讶地发现这种情况经常出现。 - Phil Hord

0

MySQL WorkBench是由Oracle开发的免费软件,您可以导入SQL文件或指定数据库,它将生成一个SQL图表,您可以移动它以使其更具视觉吸引力。 它可在GNU/Linux和Windows上运行,是免费的,并且具有专业外观。


它似乎不再支持除MySQL之外的其他DBMS。此外,它的图表自动布局很糟糕。 - Ivan
自动布局只是简单地将所有内容堆叠在一起,然后您必须将每个表格拖到适当的位置,这可能很糟糕,但我怀疑任何算法都不足以将所有内容整齐地排序。至于SQL支持,我使用它与H2服务器查询一起使用,并且它可以正常工作,我认为它们支持大多数符合SQL-92标准的SQL,因此如果您的代码不符合SQL-92标准,则可能是一个好机会来检查它。 - dendini
不兼容性问题无处不在,从非常基础的事情如引号/括号用法到 DDL(表/键/约束/索引定义语言)中的巨大差异,以及类型上的根本性差异(如使用单独的类型来处理 Unicode 字符串)。 - Ivan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接