我需要在SQL中的两个不同服务器中连接两个不同数据库中的两个表。 我似乎无法做到这一点。有人可以帮忙吗? 感谢
答案 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'