我有想法从两个不同的数据库调用两个值并在一个语句中进行比较?可能吗? 我正在使用c#和MS-SQL
答案 0 :(得分:6)
是
对于MSSQL,您可以在表前添加数据库名称。您通常可以使用4个名称空间
[服务器名称]。[数据库名称]。[所有者]。[table_name]
因此,如果要比较一个语句中的两个值,则只需要通过将数据库名称放在表名前面来连接各个表。
如果数据库位于不同的服务器上,那么您将需要创建一个链接服务器,该服务器将运行您的SQL,以便它知道其他sql服务器。您可以使用sp_addlinkedserver
之类的内容在Management studio中或通过SQL添加链接服务器答案 1 :(得分: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 */
答案 2 :(得分:0)
根据您的设置,这里有一些可能性。如果您的数据库是不同的SQL Server安装,那么您将首先查看sp_linkedserver。一旦您能够使用相同登录查看两个数据库,您就可以执行以下查询,其中db1和db2是数据库,dbo是所有者,tab1和tab2是相应的表。
SELECT a.col1
FROM db1.dbo.tab1 a, db2.dbo.tab2 b
WHERE a.col1 = b.col2
答案 3 :(得分:0)
如果您恰好缺少创建链接服务器的SQL Server权限,您可以创建与每个服务器的连接,并且您的客户端可以使用Microsoft JET库连接到服务器,然后您可以执行异构连接客户端