下面是一段时间以来我一直在改进的脚本,它由两个独立的查询组成,这两个查询结合在一起生成综合输出;第一个查询扫描除表之外的所有数据库工件,第二个查询扫描表定义。基于StackOverflow上其他地方找到的各种技巧。为了方便起见,这个脚本将它们放在一起。)我在SQL Server 2012上使用这个脚本。 澄清:这个脚本与我在其他地方看到的其他脚本相比是独一无二的,因为它将标准DEFINITIONS搜索脚本***(它不搜索表定义***)与表名和列名的列表结合在一起,以便也对TABLE定义应用搜索条件。
declare @SearchTerm varchar(max) = '%Role%'
select found.*
from (
-- Scripted artifacts, e.g. Views, Sprocs, etc.
select schema_name(o.schema_id) as [Schema],
o.Name as [Name],
o.type as [Type]
from sys.sql_modules m
full JOIN sys.objects o ON o.object_id = m.object_id
where m.definition like @SearchTerm
or o.Name like @SearchTerm
UNION ALL
-- Tables
select distinct
schema_name(tab.schema_id) as [Schema],
tab.name as [Name],
'T' as [Type]
from sys.columns col
join sys.tables tab on col.object_id = tab.object_id
where col.name like @SearchTerm
or tab.name like @SearchTerm
) found
-- Add in any filters if you wish to limit the results
where found.[Schema] <> 'zzz'
1条答案
按热度按时间aiqt4smr1#
下面是一段时间以来我一直在改进的脚本,它由两个独立的查询组成,这两个查询结合在一起生成综合输出;第一个查询扫描除表之外的所有数据库工件,第二个查询扫描表定义。基于StackOverflow上其他地方找到的各种技巧。为了方便起见,这个脚本将它们放在一起。)我在SQL Server 2012上使用这个脚本。
澄清:这个脚本与我在其他地方看到的其他脚本相比是独一无二的,因为它将标准DEFINITIONS搜索脚本***(它不搜索表定义***)与表名和列名的列表结合在一起,以便也对TABLE定义应用搜索条件。