Sql server 将不同数据库中的数据整理到同一输出窗口中
我需要在同一输出窗口的不同列中显示来自多个不同数据库源的数据。如果需要,可以将这些数据输出到文件中。例如,假设我需要在具有相同架构的数据库上运行以下脚本:Sql server 将不同数据库中的数据整理到同一输出窗口中,sql-server,database,Sql Server,Database,我需要在同一输出窗口的不同列中显示来自多个不同数据库源的数据。如果需要,可以将这些数据输出到文件中。例如,假设我需要在具有相同架构的数据库上运行以下脚本: SELECT TOP 3 item_id, COUNT(*) as itemcount_db1 FROM DB1.dbo.table GROUP BY item_id ORDER BY itemcount_db1 SELECT TOP 3 item_id, COUNT(*) as itemcount_bd2 FROM DB2.dbo.
SELECT TOP 3 item_id, COUNT(*) as itemcount_db1
FROM DB1.dbo.table
GROUP BY item_id ORDER BY itemcount_db1
SELECT TOP 3 item_id, COUNT(*) as itemcount_bd2
FROM DB2.dbo.table
GROUP BY item_id ORDER BY itemcount_bd2
这样,输出就不会出现在两个连续且独立的窗口中(因为我需要数百个数据库,并希望执行单个复制和粘贴)。我很乐意创建所有单独的脚本来获取数据,只需要以某种方式组合它们 首先,您可以使用
spmsforeachdb
或a,这样就不必复制和粘贴所有脚本。我不确定您是否希望这里的结果是水平的,而是创建一个带有DB标志的列。这里有一种使用UNION
和CTE的方法(因为您需要TOP
的order by)
with db1 as(
SELECT TOP 3
item_id,
COUNT(*) as itemcount
,'DB1'
FROM
DB1.dbo.table
GROUP BY
item_id
ORDER BY
itemcount_bd2)
db2 as(
SELECT TOP 3
item_id,
COUNT(*) as itemcount
,'DB2'
FROM
DB2.dbo.table
GROUP BY
item_id
ORDER BY
itemcount_bd2)
select * from db1
union all
select * from db2