Sql 匹配2台不同服务器上2个表中的列
我在自己的服务器上有两个数据库。 我想比较位于每个数据库表中的FIRSTNAME和LASTNAME列 如果第一个数据库的firstname和lastname组合与第二个数据库中的firstname和lastname列相匹配,我希望显示该名称 我只想知道两个数据库服务器中都列出了哪个名称 我尝试了以下操作,但仍然出现错误:Sql 匹配2台不同服务器上2个表中的列,sql,sql-server,Sql,Sql Server,我在自己的服务器上有两个数据库。 我想比较位于每个数据库表中的FIRSTNAME和LASTNAME列 如果第一个数据库的firstname和lastname组合与第二个数据库中的firstname和lastname列相匹配,我希望显示该名称 我只想知道两个数据库服务器中都列出了哪个名称 我尝试了以下操作,但仍然出现错误: Could not find server 'sql01' in sys.servers. Verify that the correct server name was sp
Could not find server 'sql01' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.
我的SQL查询:
EXEC sp_addlinkedserver @server='sql01'
SELECT LASTNAME, FIRSTNAME, STATUS, CLASS
FROM sql01.database1.dbo.MyTable1 T1
WHERE EXISTS (SELECT FIRSTNAME, LASTNAME
FROM app02.database2.dbo.MyTable2 T2
WHERE T1.FIRSTNAME = T2.FIRSTNAME
AND T1.LASTNAME = T2.LASTNAME)
我的环境:
- sql01是我的第一台服务器
- app02是我的第二个
有什么建议吗?您需要添加服务器和服务器登录:
EXEC sp_addlinkedserver @server='sql01'
EXEC sp_addlinkedsrvlogin 'sql01', 'false', NULL, 'username', 'password'
在sp_addlinkedserver中包含实例名称(
sql01\SQLEXPRESS
,或者根据SQL server的版本提供类似的名称)
您还需要运行另一个存储过程来提供链接服务器的登录详细信息
EXEC sp_addlinkedsrvlogin 'Servername', 'false', NULL, 'username', 'password'
包括实例名称(sql01\SQLEXPRESS
或类似名称),并运行SP以提供登录详细信息:EXEC SP\u addlinkedsrvlogin'Servername',false',NULL',username',password'