SQL使用查询结果(表名称)在已标识的表中进行搜索

时间:2015-10-26 16:51:00

标签: sql sql-server-2008

我确定这是一个非常简单的问题,但我还没有在网上找到答案。我想运行一个查询来识别数据库中的表子集,然后分别针对每个表运行查询并给出结果。这些表是每周创建的,因此我希望能够针对涵盖特定时期的所有表运行查询。实际上,我想创建一个foreach循环。

这些部分独立工作,但我无法正确合并。

查询1:表

Select name from DBName.sys.tables
where name like 'Table_Name_2015%'
and is_ms_shipped = 0

查询2:在表格内搜索

Select Top 1000 [Column1], COUNT(*) As ctr
From Table_Name_20151026
Group By [Column1]
Order By ctr desc

我还尝试将查询1的结果放入表中,然后尝试在查询2中调用表,但是我没有成功。

Select name into Table_Collection from DBName.sys.tables

我已经尝试将查询2中的from设置为变量,但最多我只能得到它来获得一个表的结果。

我搜索了这个网站和其他网站,我发现了一些没有出现的内容,例如sp_MSforeachtable。

1 个答案:

答案 0 :(得分:1)

Select 'Select Top 1000 [Column1], COUNT(*) As ctr From '+name+' Group By [Column1] Order By ctr desc' as sql
from DBName.sys.tables
where name like 'Table_Name_2015%'
and is_ms_shipped = 0