从现有架构生成表关系图(SQL Server)


199

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

这是针对SQL Server 2008 Express Edition的。


一个名为SchemaSpy的免费工具可以像魅力一样做到这一点。但是,需要一些设置。我在这里详细介绍了此步骤:blog.kmonsoor.com/generate-er-diagram-from-sql-database
kmonsoor 2015年

不错的一个:60个DB逆向工程工具(请参阅左侧的过滤器)-dbmstools.com/categories/database-diagram-tools/sqlserver
George Birbilis

Answers:


160

是的,您可以使用SQL Server 2008本身,但需要安装SQL Server Management Studio Express(如果未安装)。只需右键单击数据库图并创建新图。选择现有的表,如果您在表中正确指定了引用,请选择。您将能够看到所选表格的完整图表。有关更多参考,请参见SQL Server数据库图入门。


2
用SQL Server Compact 3.5可以做到这一点吗?
斯科特·安德森

一旦添加了所有必要的表,就应该能够看到所有现有的关系。
Vishwas SL

53

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

您所要做的就是获取正确的JDBC-SQL Server的数据库驱动程序,该工具只需按一个按钮即可将表和引用以正交,分层,圆圈的形式显示;-)等。我使用免费版本已有多年了。


1
设置起来非常容易,并且生成的图表比SQL Server工具更具可读性。+1
davidtbernal 2011年

如果您已经在运行JDBC,则设置起来非常容易。否则,可能会导致熟悉的配置问题
鲁芬2014年

+∞。救生员!
Olayinka 2014年

1
在2018年7月对此进行了尝试,它仍然可以创造奇迹,并且仍然免费!+1
Andrea Scarcella '18年

如果您具有适当的外键关系,则效果很好。
戏phor


8

对于SQL语句,您可以尝试反向雪花。您可以在sourceforge或位于http://snowflakejoins.com/的演示站点上加入。


虽然不执行任务(可视化数据库模式),但是仍然很酷。我希望有这样的东西可以从文字描述中生成一个整洁的计算机网络图...
Ivan

4

您为什么不只使用SQL Server内置的数据库图功能?


6
它并非总是可用。由于许可,某些版本的SSMS和SQL不允许使用。
Piotr Kula

或者,您可以知道,实际上仅使用连接凭据,就可以在GNU / LInux或Macos上获得任何许可证。
Helvete

2

如果您要创建数据库图,则Visio Professional具有数据库逆向工程功能。它不是免费的,但在大多数公司中普遍存在,并且应该很容易获得。

请注意,Visio 2003不能很好地与SQL2005或SQL2008一起用于逆向工程-您将需要获得2007。


7
不幸的是,此功能已在Visio 2013中删除。
Kjell-ÅkeGafvelin



0

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


除了MySQL以外,它似乎不再支持DBMS。而且,它的图自动布局令人恐惧。
伊万

自动布局只是将所有内容堆叠在一起,然后必须将每个表拖到适当的位置,这可能很可怕,但是我怀疑任何算法都不会足够聪明地将所有内容整齐地排序。至于SQL支持,我将其与H2服务器查询一起使用,并且可以正常工作,我认为它们支持大多数符合SQL-92的SQL,因此,如果您的代码不符合SQL-92,则可能是检查它的好时机。
dendini

从最基本的东西(例如引号/花括号的使用)到DDL(表/键/约束/索引定义语言)的巨大差异以及类型的根本差异(例如为Unicode字符串使用单独的类型),这种不兼容现象无处不在。
伊万
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.