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

r.r*_*r.r 3 c# sql sql-server

我有一个想法,从两个不同的数据库调用两个值,并在一个语句中comapre他们?可能吗?我正在使用c#和MS-SQL

kev*_*ers 6

是.

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

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

因此,如果要比较一个语句中的两个值,则只需要通过将数据库名称放在表名前面来连接各个表.

如果数据库位于不同的服务器上,那么您将需要创建一个链接服务器来运行您的SQL,以便它知道其他sql服务器.您可以使用sp_addlinkedserver之类的内容在Management studio中或通过SQL添加链接服务器

  • 在sql server 2005及更高版本中,[owner]部分已更改为[schema] (3认同)

Tor*_*son 5

您可以跨数据库连接来比较这些值:

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 */
Run Code Online (Sandbox Code Playgroud)