如何从SQL中的两个不同服务器的两个不同数据库连接两个表?

时间:2014-07-21 08:52:10

标签: sql

我需要在SQL中的两个不同服务器中连接两个不同数据库中的两个表。 我似乎无法做到这一点。有人可以帮忙吗? 感谢

1 个答案:

答案 0 :(得分:0)

您需要添加链接服务器。

要使用用户T_Users(在COR_Basic上)和密码CORDB2005访问服务器ApertureWebServicesDE上的数据库目录CORDB2005上的表MY_TOP_SECRET_PASSWORD,使用方法:

EXEC master.dbo.sp_addlinkedserver 
    @server = N'RemoteDB'
   ,@srvproduct = 'OLE DB Provider for SQL'
   ,@provider = N'SQLNCLI'
   ,@datasrc = 'CORDB2005'
   ,@catalog = 'COR_Basic'

GO

EXEC master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname = N'RemoteDB'
   ,@useself = false
   --,@locallogin = 'LocalIntegrationUser'
   ,@locallogin = NULL 
   ,@rmtuser = N'ApertureWebServicesDE'
   ,@rmtpassword = N'MY_TOP_SECRET_PASSWORD'
GO




SELECT * 
FROM RemoteDB.COR_Basic.dbo.T_Users 

确保用户ApertureWebServicesDE具有登录和实际查询该服务器上的表的所有权利。

不言而喻,两台服务器之间需要LAN / WAN连接。

此外,如果要链接到存储过程,则需要启用它们:

EXEC sp_serveroption @server='RemoteDB', @optname='rpc', @optvalue='true'
EXEC sp_serveroption @server='RemoteDB', @optname='rpc out', @optvalue='true'