有没有一种简单的方法来追逐SQL Server 2005+中的表/存储过程/函数依赖项?我继承了一个包含大量表的巨型应用程序,甚至还有更多存储过程和函数,这些程序和函数很长并且相互关联.
在一天结束时有没有办法建立一个依赖树?理想情况下,我正在寻找的是两个方向:
对于表/程序 - 什么依赖于它?:显示最终引用它的所有存储过程(理想情况下在树视图中,以便子过程嵌套到调用它们的较大过程)
对于程序 - IT依赖什么?:显示给定程序在运行时(或可能)触摸的所有程序和表格.
看起来这个工具不应该那么难,并且通常对数据库维护非常有用.有人知道这样的事吗?如果这不存在,为什么不呢?
Management Studio中的内置功能很不错,但信息似乎根本不完整.
Jer*_*y S 26
希望我对此并不太晚:
如果您的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
Run Code Online (Sandbox Code Playgroud)
以此为出发点,您可以构建一个合适的工具来创建依赖树.还有类型特定的视图(例如sys.columns),它们提供有关每种特定数据库对象类型的更深入信息; 如有必要,这些可用于提供对象的上下文信息.