2017-04-12 115 views
0

我有以下查询SQL查询多个数据库

EXECUTE sp_MSForEachDB 
'USE ?; 
Select DB_NAME()AS DBName, count(DISTINCT TABLE.COLUMN) as "NEW_NAME" 
    FROM [dbo].[TABLE]' 

这给了我我想要的结果,但在我的连接每个数据库我得到一个单独的输出。有没有办法将所有数据库的所有这些输出放到一个表中。很抱歉,如果我不问正确的排序新来这...

回答

0

,如果我理解正确,这应该工作:

CREATE TABLE #Temp (DBName VARCHAR(250), NEW_NAME INT) 

INSERT INTO #Temp 
EXECUTE sp_MSForEachDB 
'USE ?; 
Select DB_NAME()AS DBName, count(DISTINCT TABLE.COLUMN) as "NEW_NAME" 
    FROM [dbo].[TABLE]' 


SELECT * FROM #Temp 

下面是如何做到这一点的工作的例子。我已经修改了查询,以便它可以在我的机器上运行,因为我没有表[DBO] [TABLE]在我的数据库:

enter image description here