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