SQL Server依赖项

Cor*_*ory 11 sql-server

有没有一种简单的方法来追逐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),它们提供有关每种特定数据库对象类型的更深入信息; 如有必要,这些可用于提供对象的上下文信息.


Sco*_*aad 12

Red Gate有一个非常有用的工具叫做SQL Dependency Tracker.我们已经成功地将它用于您希望获得的结果类型.