有没有一种简单的方法可以在 SQL Server 2005+ 中追踪表/存储过程/函数依赖关系?我继承了一个巨大的应用程序,其中包含大量表以及更多的长且相互关联的存储过程和函数。
到底有没有办法构建依赖树?理想情况下,我正在寻找两个方向:
对于表/过程 - 它取决于什么?:显示最终引用它的所有存储过程(最好在树视图中,以便子过程嵌套到调用它们的更大过程中)
对于一个程序——IT 依赖什么?:显示给定过程在运行时将(或可能)接触的所有过程和表。
看起来这个工具应该不难制作,并且通常对于数据库维护非常有用。有人知道这样的事情吗?如果这不存在,那为什么不呢?
Management Studio 中的内置功能很好,但信息似乎并不完整。
希望我现在还不算太晚:
如果您的 SQL 登录可以访问特定数据库中的 sys 架构,则可以使用 sys.dependencies 视图一次性查找对象的所有依赖项:
SELECT o.name, o.type_desc, p.name, p.type_desc
FROM sys.sql_dependencies d
INNER JOIN sys.objects o
ON d.object_id = o.object_id
INNER JOIN sys.objects p
ON d.referenced_major_id = p.object_id
以此为起点,您可能可以构建一个不错的工具来创建依赖关系树。还有特定于类型的视图(例如 sys.columns),它们提供有关每个特定数据库对象类型的更深入的信息;如有必要,这些可用于提供对象的上下文信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)