求推荐可生成SQL Server表、视图及依赖关系可视化图的工具
求推荐可生成SQL Server表、视图及依赖关系可视化图的工具
刚好之前帮朋友梳理过老SQL Server数据库的依赖,来给你唠几个亲测好用的工具,顺便纠正下你提到的几个工具的小误区~
一、你提到的工具其实有隐藏功能
- SQL Server Management Studio (SSMS):它不是做不到,只是入口有点隐蔽。可以搭配SQL Server Data Tools (SSDT) 使用——SSDT连接数据库后,在「Schema View」里选中需要的表和视图,右键选择「Generate Dependency Graph」,就能自动生成带依赖连线的可视化图,视图和表的引用关系一目了然,还能拖拽调整布局。另外右键单个视图选「View Dependencies」,也能看到它依赖的表/其他视图,只是这个是列表形式,需要手动整理成图。
- DBeaver:可能你没开启依赖显示功能。打开ER Diagram后添加需要的表和视图,在顶部工具栏找到「Show dependencies」按钮(带箭头连线的图标),开启后就能自动显示视图和关联表的依赖连线,小范围梳理还是够用的。
二、专门的依赖可视化工具(省心首选)
- Redgate SQL Dependency Tracker:我处理老库依赖的心头好。它能直接连接SQL Server实例,或者导入备份文件,自动扫描所有表、视图、存储过程等对象的依赖,生成交互式可视化图——可以缩放、拖拽、筛选特定对象,甚至能看跨数据库的依赖。视图的每一层依赖都能展开,比如某个视图依赖了另一个视图,点进去能看到它依赖的表,特别适合复杂老库的梳理。
- ApexSQL Analyze:专注于SQL Server的对象依赖分析。支持从实时数据库或备份文件生成可视化图,能清晰区分表、视图、函数等不同对象的图标,还能生成PDF/HTML静态报告方便分享。它的自动布局很智能,不会让连线乱成一团,老库的复杂依赖也能一目了然。
三、免费DIY方案(适合有SQL基础的)
如果不想用第三方工具,也可以自己查系统视图拿数据,再手动整理成图:
运行下面的SQL查询,就能导出所有表和视图的依赖关系:
SELECT referencing_entity_name AS [依赖对象名称], referenced_entity_name AS [被依赖对象名称], referencing_class_desc AS [依赖对象类型], referenced_class_desc AS [被依赖对象类型] FROM sys.sql_expression_dependencies WHERE referencing_class_desc IN ('VIEW', 'USER_TABLE') ORDER BY referencing_entity_name
把结果复制到Excel整理后,用Visio、Draw.io这类工具手动画依赖图,虽然费点时间,但完全免费。




