首页 > 解决方案 > 遍历服务器中的所有数据库以获取特定数据

问题描述

是否可以编写一个脚本来遍历服务器上的每个数据库对象并获取我需要的特定数据?它类似于 - 每个对象都包含一个地址或电子邮件

编辑:我基本上需要找到包含客户信息的数据库对象。如何找到所有包含“@”的对象(如电子邮件)?

标签: sqlsql-servertsql

解决方案


您可以使用 SQL sp_MSForEachTable过程作为选项在参考文档中有一个 SQL 脚本,它返回所有数据库表及其列(仅作为示例)

也可以使用 sp_MSForEachDB 在同一 SQL Server 实例上的所有数据库上执行相同的脚本

但是,如果您正在寻找名称如地址或电子邮件的数据库表列,您也可以使用以下 SQL Select 语句

select 
    object_name(c.object_id) [object name], 
    o.type_desc [object type],
    c.name [column name] 
from sys.columns as c
inner join sys.objects as o
    on c.object_id = o.object_id
where c.name like '%address%' or c.name like '%email%'

推荐阅读