在所有数据库中的 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
所以,它是一个 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