我有一个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
是另一个有另一个登录名的数据库。
答案 0 :(得分:1)
您不能在ASP.NET中执行此操作,也不能使用两个连接字符串。
实现此目的的一种方法是将这些数据库设置为linked servers - 这将允许您使用一个登录名在其中一个服务器上运行查询,并通过链接服务器执行连接。
答案 1 :(得分:1)
如果没有链接服务器的单个查询,则无法执行此操作,但您可以单独查询它们,然后根据.NET代码中第二个表的值过滤第一个表。
答案 2 :(得分:0)
编辑:简而言之,你可以但他们必须联系起来:见Oded的回答。
简而言之,你不能。
SQL查询由单个SQL服务器处理和执行。这意味着单个查询无法在两个不同的服务器上连接两个表。
根据具体情况,将表从一个服务器导入另一个服务器,然后在该服务器上执行查询可能更好。因此,问题是“为什么你在两个独立的服务器上有相关数据?”
答案 3 :(得分:0)
您有两个选择: