我正在开发一个Web应用程序(现在使用经典的asp),它需要在同一台服务器上的两个独立数据库中查询两个表。
IT团队为每个数据库分配了单独的应用程序级别登录名/密码,将在我的代码中用于连接。
我想创建一个链接两个表(每个数据库一个)的查询,但不太确定如何,Google也没有帮助我。
我假设我必须创建两个连接来执行此操作,因为我有两个单独的登录,但是如何创建一个使用每个表的查询。
请注意 - 我们的IT团队现阶段不会将两个数据库连接在一起。我几乎坚持我拥有的东西。
希望你能提供帮助。 垫
答案 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团队只是从同一服务器主体授予对两个数据库的相关访问权限,那么这是实现它的最佳方式。如果你坚持使用两个完全独立的登录,那就太糟糕了。但是,没有必要“将数据库链接在一起”以运行跨数据库查询。