sql - 遍历服务器中的所有数据库以获取特定数据
问题描述
是否可以编写一个脚本来遍历服务器上的每个数据库对象并获取我需要的特定数据?它类似于 - 每个对象都包含一个地址或电子邮件
编辑:我基本上需要找到包含客户信息的数据库对象。如何找到所有包含“@”的对象(如电子邮件)?
解决方案
您可以使用 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%'
推荐阅读
- r - 按超过 2 列的因子折叠数据框
- java - 如何在不移动按钮的情况下在 javafx 中添加文本框
- c++ - “架构 x86_64 的未定义符号”
- javascript - 函数在 Promise.all(reduce(acc, item) => {})) 函数中丢失上下文
- python - 为什么所有双下划线变量都在类方法中被破坏
- swift - 如何从字符串中间删除一个字符?斯威夫特 4
- jboss - 为什么 Jboss 7.2 用域而不是相对路径覆盖 HTML 表单操作路径?
- javascript - Javascript:球体碰撞和产生的脉冲
- r - 具有不同颜色点的散点图
- python - Pandas:对于 2 个或更多特定列值完全相同的行组,如何将唯一整数分配为新列