我正在尝试做一个有趣的查询。我有很多数据库,他们有一个同名的表(例如:mytable)。我想在这个表中找到一些东西,但是在服务器上搜索所有这个表。
我试过了:
sp_msforeachdb 'Select * from Sysobjects where name=''mytable'''
这列出了服务器上的所有“mytable”表。
我也用过
select * from [table].[dbo].[mytable] where myclause
我尝试加入这两个查询,但我无法找到正确的方法(如果有办法)。
我尝试了case
,join
,inner join
,但很难得到我想要的东西。
答案 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
逃避'(单引号)使用''(两个双引号)