如何在SQL Server 2005中识别正在使用的存储过程或其他对象?

dcp*_*ers 1 sql-server-2005

我需要修改功能,我需要通过查看依赖于此功能的其他对象(例如存储过程,函数等)来了解可能产生的影响.现在,无论如何我能找到可以通过所有代码的这个吗?我有很多存储过程/函数.

在storedproc中有可能具有动态构造的查询,例如@SQL ='SELECT BLA BLA'

是否有可用于检测此问题的第三方工具?

谢谢

Mar*_*ith 5

第三方工具

Redgate SQL RefactorDependency Tracker实际上可能是最好的.

Apex SQL Clean

自制解决方案

您可以使用,sp_depends但这取决于最新的依赖关系信息.

sp_refreshsqlmodule如果存在任何缺少的依赖项信息,则在数据库中的所有对象上运行可以更新此项.

但是,这不会在动态SQL中找到您使用它的位置.您可以跟踪它们.

select object_name(object_id) 
from sys.sql_modules 
where definition like '%Your Function Name%'
Run Code Online (Sandbox Code Playgroud)

假设您的动态SQL字符串并未奇怪地将函数名称拆分.