C# 如何在一条SQL语句中比较来自不同数据库的两个值

C# 如何在一条SQL语句中比较来自不同数据库的两个值,c#,sql,sql-server,C#,Sql,Sql Server,我想从两个不同的数据库中调用两个值,并将它们放在一个语句中?可能吗? 我正在与c#和MS-SQL合作,是的 对于MSSQL,您可以在表前面添加数据库名称。通常有4个名称空间可以使用 [服务器名称].[数据库名称].[所有者].[表名称] 因此,如果要比较一条语句中的两个值,只需将数据库名放在表名前面,跨表联接即可 如果数据库位于不同的服务器上,那么您需要创建一个链接到运行SQL的服务器端的服务器,以便它知道其他SQL服务器。您可以在Management studio中添加链接服务器,也可以通过S

我想从两个不同的数据库中调用两个值,并将它们放在一个语句中?可能吗? 我正在与c#和MS-SQL合作,是的

对于MSSQL,您可以在表前面添加数据库名称。通常有4个名称空间可以使用

[服务器名称].[数据库名称].[所有者].[表名称]

因此,如果要比较一条语句中的两个值,只需将数据库名放在表名前面,跨表联接即可


如果数据库位于不同的服务器上,那么您需要创建一个链接到运行SQL的服务器端的服务器,以便它知道其他SQL服务器。您可以在Management studio中添加链接服务器,也可以通过SQL使用类似的方法添加链接服务器。您可以进行跨数据库连接以比较这些值:

SELECT
   db1.Value as value1,
   db2.Value as value2
FROM
   [database1].dbo.MyTable1 as db1
   INNER JOIN
   [database2].dbo.MyTable as db2
    ON   
    /* insert join clasue */

根据您的设置,这里有一些可能性。如果您的数据库是不同的SQL Server安装,那么您首先要看一看。一旦您能够使用相同的登录名查看两个数据库,您就可以执行以下查询,其中db1和db2是数据库,dbo是所有者,tab1和tab2是各自的表

SELECT a.col1 
FROM db1.dbo.tab1 a, db2.dbo.tab2 b
WHERE a.col1 = b.col2

如果您碰巧缺少创建链接服务器的SQL Server权限,您可以创建到每个服务器的连接,您的客户端可以使用Microsoft JET library连接到服务器,然后您可以执行异构连接客户端。

在SQL Server 2005及更高版本中,[owner]部分已更改为[schema]可能的副本不是副本。他询问的是查询两个不同的数据库,而不是具体询问从两个不同的服务器进行查询。对于两个不同的数据库,只需将数据库名称添加到表的前面(换句话说,完全限定它),如select*from master.dbo.systables中所述,要从另一台服务器查询数据,您需要使用链接服务器。