有没有一种简单的方法来追踪SQL Server 2005+中表/存储过程/函数依赖关系? 我继承了一个庞大的应用程序,有很多表格,甚至更多的长时间互相关联的存储过程和函数。
最终是否有一种方法来构建依赖关系树? 理想情况下,我要查找的内容是双向的:
对于表/存储过程 - 什么依赖于它?:显示所有最终引用它的存储过程(理想情况下,以树形视图呈现,子过程嵌套到调用它们的较大过程中)。
对于存储过程 - 它依赖于什么?:显示运行时给定过程将(或可能)触及的所有过程和表格。
看起来这个工具不应该很难制作,对于数据库维护而言将非常有用。 是否有人知道这样的东西? 如果不存在,为什么没有呢?
Management Studio中内置的功能很好,但信息似乎并不完整。
最终是否有一种方法来构建依赖关系树? 理想情况下,我要查找的内容是双向的:
对于表/存储过程 - 什么依赖于它?:显示所有最终引用它的存储过程(理想情况下,以树形视图呈现,子过程嵌套到调用它们的较大过程中)。
对于存储过程 - 它依赖于什么?:显示运行时给定过程将(或可能)触及的所有过程和表格。
看起来这个工具不应该很难制作,对于数据库维护而言将非常有用。 是否有人知道这样的东西? 如果不存在,为什么没有呢?
Management Studio中内置的功能很好,但信息似乎并不完整。
sys.objects
表所属的对象目录视图是在SQL 2005中引入的,但是可以使用Information Schema视图编写类似的查询。 它们有点棘手,但您可以在http://msdn.microsoft.com/en-us/library/aa933204(SQL.80).aspx找到有关它们的文档。 - Jeremy Ssql_dependencies
现在已经被弃用了,最好使用sys.sql_expression_dependencies
。 - Ivan Akcheurov