【发布时间】:2017-07-04 20:11:38
【问题描述】:
(我在 StackOverflow 上看到过其他几篇关于此的帖子——特别是 this 和 this,但它们似乎都是 Oracle 特定的,而且我使用的是 SQL Server。)
所以我使用this post 来获取所有具有特定列的表。那部分效果很好,它给我带来了 100 多张桌子。这就是我正在使用的,来自那个帖子:
SELECT c.name AS 'ColumnName'
,t.name AS 'TableName'
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
WHERE c.name LIKE 'myColumn'
ORDER BY TableName
,ColumnName;
我现在正在寻找的是对此的修改——有没有办法获取每个表中我的目标列名具有特定值的所有行?基本上,我希望能够遍历系统中的每个表并选择特定列名具有特定值的每一行。 (稍后我会尝试删除所有这些行,但首先是 SELECT,然后是 DELETE。)
类似的东西(我知道这是行不通的;这是为了说明目的):
SELECT [row]
FROM sys.tables tab
JOIN sys.columns col ON col.object_id = tab.object_id
WHERE col.name LIKE 'myColumn' AND col.value = 'myVal'
我能想到的唯一其他选择是获取第一个查询的输出并在每个查询上运行 SELECT,至少可以说,这将在 SQL Server Management Studio 中给我带来笨拙的输出。
有没有一种简单的方法来解决这个问题,而无需借助外部工具或其他工具?
【问题讨论】:
标签: sql sql-server