这是一个三步过程。仍然不完美,但有助于消除一些差距。假设您正在查找表“WidgetUser”的依赖关系:
首先,获取可能引用该表的所有模块的列表。将查询结果输出到文本:
select 'EXEC sys.sp_refreshsqlmodule ''dbo.' + OBJECT_NAME(m.object_id) + ''''
from sys.sql_modules m
where m.definition like '%WidgetUser%'
接下来,粘贴输出文本并运行更新。这将是这样的:
EXEC sys.sp_refreshsqlmodule 'dbo.up_WidgetUser_Select'
EXEC sys.sp_refreshsqlmodule 'dbo.up_WidgetUser_Update'
EXEC sys.sp_refreshsqlmodule 'dbo.WidgetUserView'
EXEC sys.sp_refreshsqlmodule 'dbo.ufx_WidgetUser_Fooinize'
...
现在,您的依赖是高达最新,运行sp_depends
:
EXEC sp_depends @objname = N'dbo.WidgetUser'
http://sqlblog.com/blogs/aaron_bertrand/archive/2008/09/09/keeping-sysdepends-up-to-date-in-sql-server-2008。aspx –