0

我有一个在多个服务器上使用多个数据库的 asp.net 应用程序。现在我需要连接来自不同服务器上两个数据库的两个表。

我使用两个连接字符串,我应该写什么?

query = select studentcode,mobile 
        from learning.dbo.students 
        where stcode in (select stcode from hs.dbo.currentetrm)

Dim ds As New DataSet()
ad.Fill(ds)

GridView1.DataSource = ds
GridView1.DataBind()

一台服务器上的一个数据库在哪里learning有自己的登录名,hs另一个数据库在哪里有另一个登录名。

4

4 回答 4

1

您不能从 ASP.NET 中执行此操作,而不是使用两个连接字符串。

实现此目的的一种方法是将这些数据库设置为链接服务器- 这将允许您使用一次登录在其中一台服务器上运行查询,并通过链接服务器执行连接。

于 2012-10-02T19:55:41.550 回答
1

您不能使用没有链接服务器的单个查询来执行此操作,但您可以单独查询它们,然后根据 .NET 代码中第二个表的值过滤您的第一个表。

于 2012-10-02T21:17:48.367 回答
0

编辑:简而言之,你可以但他们必须被链接:见奥德的回答。

简而言之,你不能。

SQL 查询由单个 SQL 服务器处理和执行。这意味着单个查询不能连接两个不同服务器上的两个表。

根据具体情况,最好将表从一台服务器导入到另一台服务器,然后在该服务器上执行查询。因此,问题是“为什么您在两台不同的服务器上有相关数据?”

于 2012-10-02T19:54:35.750 回答
0

您有 2 个选项:

  1. 使用链接服务器,以便您可以使用单个连接字符串完成所有操作。
  2. 使用 2 个连接并将数据带到应用程序端 (C#)。现在您将两个数据集放在同一个位置,您可以应用所需的逻辑。
于 2012-10-02T22:15:06.350 回答