在所有数据库中的 procedures/functions 中搜索 table 用法

search in procedures/functions in all dbs for a table usage

所以,它是一个 Sql Server 2008,有很多数据库,我需要在每个数据库 (dbs) 中找到特定 table 的所有用法。 有人可以给我指明方向吗?

只需将变量@TableToSearchFor 设置为等于您要查找的table。未记录的系统存储过程 sp_MSforeachdb 将遍历服务器上所有数据库的语句。

DECLARE @TableToSearchFor nvarchar(max)
SET @TableToSearchFor = 'YourTableName'


DECLARE @MySearchStatement nvarchar(max)
SET @MySearchStatement = 
'USE [?]; '  +
'SELECT DISTINCT ' + 
'   DB_Name() AS [DB], ' + 
'   [SysObjects].name AS [Object Name], ' + 
'   [SysObjects].type_desc AS [Type Desc] ' + 
'FROM sys.sql_modules Modules ' + 
'   INNER JOIN sys.objects [SysObjects] ON Modules.object_id = [SysObjects].object_id ' + 
'WHERE  ' + 
'   Modules.[definition] LIKE ''%' + @TableToSearchFor + '%'' ' 


EXEC sp_MSforeachdb @MySearchStatement