SQL Server 2005 - 从多个数据库中选择并将结果编译为单个查询

Cly*_*yde 1 vb.net sql-server asp.net

好的,基本情况:由于一些混合启动,项目最终没有一个,而是三个独立的数据库,每个数据库包含整个项目数据的一部分.所有三个数据库是相同的,只是说,10%的项目运行到第一个,然后一个新的数据库是由于代码更新和15%的项目运行到新的,然后另一个代码更改需要另一个新数据库用于项目的其余部分.同样,所有三个数据库中的相关表都完全相同.

现在,假设我想要考虑所有这三个数据库 - 记住它们不能仅仅因为主键问题而被编译到单个数据库中等等 - 并且运行单个查询来查看所有这三个数据库,从每个数据中选择一组给定的数据,然后将这三个集合编译成一个结果,并将其返回到我正在处理的报告页面.

作为参考,在其端点处,数据被输出到ASP.Net/VB.Net支持的页面,特别是Gridview对象.幸运的是,它不需要编辑,只是显示.

什么是解决这个混乱的最佳方法?我认为创建一个临时表是我最好的选择,但说实话,我正在进入我不熟悉的SQL的一部分,并且会感谢任何有经验的人可能提供的任何指导.

Joh*_*nFx 5

我想说你最好的选择就是将它们搞砸并合并数据库,即使将主键组合在一起也是一个很大的痛苦.现在可能是一个很大的痛苦,但在整个项目的生命周期中,这将是10倍的痛苦.

正如Scott所指出的那样,你可以在多个数据库之间建立联合,但随着应用程序变得越来越复杂,你将陷入困境.例如,即使您通过为同一实体提供多个表/数据库来规避技术限制,在PK中为逻辑实体设置重复也是一个麻烦的世界.

如果必须,请实施变通方法解决方案,但我保证您以后会讨厌自己.