使用两个数据库创建查询

时间:2012-09-13 09:26:20

标签: sql sql-server asp-classic

我正在开发一个Web应用程序(现在使用经典的asp),它需要在同一台服务器上的两个独立数据库中查询两个表。

IT团队为每个数据库分配了单独的应用程序级别登录名/密码,将在我的代码中用于连接。

我想创建一个链接两个表(每个数据库一个)的查询,但不太确定如何,Google也没有帮助我。

我假设我必须创建两个连接来执行此操作,因为我有两个单独的登录,但是如何创建一个使用每个表的查询。

请注意 - 我们的IT团队现阶段不会将两个数据库连接在一起。我几乎坚持我拥有的东西。

希望你能提供帮助。 垫

2 个答案:

答案 0 :(得分:2)

如果IT团队希望数据库分开,您显然无法使用数据库为您进行连接。

您必须执行加入客户端。 Linq是一种简单的方法,但是有两个数据集的循环也可以。

答案 1 :(得分:1)

跨数据库查询的典型语法如下:

SELECT <columns>
  FROM [schema].[table] t1 INNER JOIN
       [databaseName].[schema].[table] t2 ON <condition>

但是,如果您使用的是2005或更高版本,那么在第一个数据库中创建一个同义词是非常值得的,这样就不会在整个代码中添加对第二个数据库的引用(如果数据库名称稍后更改,该怎么办?)< / p>

CREATE SYNONYM [schema].[synonymName] FOR [databaseName].[schema].[table]

然后您的查询变为:

SELECT <columns>
  FROM [schema].[table] t1 INNER JOIN
       [schema].[synonymName] t2 ON <condition>

您可能需要适当地设置权限,以便您用于连接到第一个数据库的用户可以访问第二个数据库。如果IT团队只是从同一服务器主体授予对两个数据库的相关访问权限,那么这是实现它的最佳方式。如果你坚持使用两个完全独立的登录,那就太糟糕了。但是,没有必要“将数据库链接在一起”以运行跨数据库查询。