在多个数据库上查询多个表之后查询字段

时间:2013-05-28 14:52:59

标签: sql

我正在尝试做一个有趣的查询。我有很多数据库,他们有一个同名的表(例如:mytable)。我想在这个表中找到一些东西,但是在服务器上搜索所有这个表。

我试过了:

sp_msforeachdb 'Select * from Sysobjects where name=''mytable'''

这列出了服务器上的所有“mytable”表。

我也用过

select * from [table].[dbo].[mytable] where myclause

我尝试加入这两个查询,但我无法找到正确的方法(如果有办法)。

我尝试了casejoininner join,但很难得到我想要的东西。

1 个答案:

答案 0 :(得分:0)

试试这个:

sp_msforeachdb 'insert into MyMasterDB.dbo.ResultsTable select * from [?].dbo.[MyTable] where myclause'

OR(结果中包含数据库名称)

DECLARE @SQL AS VARCHAR(MAX)
select @SQL = 'insert into MyMasterDB.dbo.ResultsTable select ? as DB_Name, col1, cast (col2 as varchar (50)), col3 from [?].dbo.[MyTable] where myclause'

sp_msforeachdb @SQL

逃避'(单引号)使用''(两个双引号)