有没有办法在一个查询中查询135个不同的表?

Ran*_*der 8 sql t-sql sql-server

在我们的数据库中,我们有135个表,其中有一个名为EquipmentId的列.我需要查询每个表以确定它们中的任何一个是否具有等于某个值的EquipmentId.有没有办法在一个查询中执行此操作,而不是135个单独的查询?

非常感谢.

mel*_*okb 6

您正在查看动态SQL以生成对所有表的查询,并可能将结果联合起来,或使用类似未记录的sp_MSforeachtable存储过程之类的东西.

sp_msforeachtable 'select * from ? where equipmentid = 5'
Run Code Online (Sandbox Code Playgroud)


And*_*mar 5

您可以使用查询来构建查询:

select  'union all select * from ' + name + 
             ' where EquipmentId = 42' + char(13) + char(10) 
from     sys.tables
Run Code Online (Sandbox Code Playgroud)

复制结果,剥离第一个union all,然后运行查询:)