SQL Server:查找列标题

Luc*_*man 5 sql-server

我正在检查数据库服务器,问题是大约有 40 个数据库,每个数据库有数百个表。我正在寻找列名包含特定单词的表。

有没有办法进行搜索来识别这些表?

Rob*_*ley 5

您希望能够sys.columns在每个数据库中进行查询。为此,请尝试:

select 'union all select ''' + name + ''' as dbname, s.name + ''.'' + o.name + ''.'' + c.name collate database_default as colname
        from ' + quotename(name) + '.sys.columns as c
        join ' + quotename(name) + '.sys.objects as o
        on o.object_id = c.object_id 
        join ' + quotename(name) + '.sys.schemas as s
        on s.schema_id = o.schema_id 
        where c.name like ''%name%''  collate database_default '
from sys.databases;
Run Code Online (Sandbox Code Playgroud)

然后将您返回的列复制到一个新窗口中,去除领先的“联合所有”,然后运行它。:)