【发布时间】:2009-10-01 19:52:40
【问题描述】:
我有各种数据库,以及要确保我正在删除一些真正孤立的东西(在这种情况下是一个视图)。使用的 SQL 是否正确:
SELECT r.routine_name,
r.routine_definition
FROM INFORMATION_SCHEMA.ROUTINES r
WHERE r.routine_definition LIKE '%my_view_name%'
它的问题是这些引用没有在存储过程中提取声明,我不知道还有什么。
我找到了我记得的SO Question,但这也无济于事。这个:
SELECT t.*
FROM SYSCOMMENTS t
WHERE CHARINDEX('my_view_name', t.text) > 0
...接近了。我得到了我知道正在使用视图的存储过程的主体,但我无法获取实际的过程名称。
【问题讨论】:
-
“sp_depends”没有帮助。我想你必须在每个数据库上运行它。
标签: sql sql-server sql-server-2005 tsql