我在自己的服务器上有2个数据库。 我想比较位于每个数据库的表中的 FIRSTNAME 和 LASTNAME 列。
如果第一个数据库的firstname和lastname组合与第二个数据库中的firstname和lastname列匹配,我想显示该名称。
我只想知道两个数据库服务器中列出了哪个名称。
我尝试了以下但我仍然收到错误:
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)
我的环境:
我在连接到app02的同时在SQL Server中运行查询。
有什么建议吗?
答案 0 :(得分:1)
使用sp_addlinkedserver(sql01\SQLEXPRESS
包含实例名称,或类似的东西,具体取决于SQL Server的版本)
此外,您还需要运行另一个存储过程来提供链接服务器的登录详细信息
EXEC sp_addlinkedsrvlogin 'Servername', 'false', NULL, 'username', 'password'
答案 1 :(得分:0)
您需要添加服务器和服务器登录:
EXEC sp_addlinkedserver @server='sql01'
EXEC sp_addlinkedsrvlogin 'sql01', 'false', NULL, 'username', 'password'