0

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

我试过了:

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

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

我也用过

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

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

我试过了casejoininner join真的很难得到我想要的东西。

4

1 回答 1

0

尝试这个:

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

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

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

要转义 '(单引号),请使用 ''(两个双引号)

于 2013-05-28T15:02:26.027 回答