SQL - 从多个数据库中选择

问题描述

我有 10 个数据库,它们都在同一个实例和架构中,具有相同的表。

希望创建一个 SELECT 查询,该查询可以使用数据库名称的变量并将所有记录返回到单个数据集中。

我一直环顾四周,将以下内容放在一起作为测试(真正的 select 语句要大得多,有多个连接)

这个测试确实有效,但它为每个数据库返回两个结果集。

有没有办法将结果合并为一组,还是我使用了错误的方法?

提前致谢

DECLARE @DB_NAME VARCHAR(6);

DECLARE CURSOR_ALLDB_NAMES CURSOR FOR 
    SELECT name
    FROM sys.databases
    WHERE name IN ('CN2DAT','AU1DAT') 

OPEN CURSOR_ALLDB_NAMES

FETCH NEXT FROM CURSOR_ALLDB_NAMES INTO @DB_NAME

WHILE @@Fetch_Status = 0
BEGIN
    EXEC ('SELECT * FROM ' + @DB_NAME + '.dbo.ICITEM')

    -- EXEC ('USE '+ @DB_NAME + ' SELECT * from dbo.ICITEM')

    FETCH NEXT FROM CURSOR_ALLDB_NAMES INTO @DB_NAME
END

CLOSE CURSOR_ALLDB_NAMES
DEALLOCATE CURSOR_ALLDB_NAMES

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)