我有一个需要调整的大型查询,因此它可以跨多个数据库查询数据(所有数据库都使用相同的模式)。因此,我希望使用UNION
来完成任务。但是我不确定我应该如何实现数据库切换。我已经考虑在查询中切换到三部分名称,但是由于查询非常庞大且复杂,使用子查询,这将非常耗时。我还考虑使用USE
并复制和粘贴查询,但在第二个USE
语句后出现错误。这里最好的方法是什么?我真的不想太多地修改原始查询,因为它按预期工作。我只是在寻找一种方法来使用查询并从多个数据库中获取结果,然后将它们呈现在一个结果集中。
答案 0 :(得分:1)
使用3部分命名惯例
select col1, col2, col3 from DB1.dbo.table1
union all
select col1, col2, col3 from DB2.dbo.table1
答案 1 :(得分:1)
你在正确的轨道上有三个部分命名。
这种方法的优点在于您也可以跨链接服务器执行此操作。
e.g。
g.col_c.sum(split_out=10).max().compute()
答案 2 :(得分:0)
SELECT COLUMNS HERE <Column1, Column2 ...>
FROM TheFirstDataBase.Schema.TableName
UNION
SELECT COLUMNS HERE <Column1, Column2 ...>
FROM TheSecondDataBase.Schema.TableName
注意:
它必须是相同的列,并且具有相同的数据类型。