1:新建dblink
在目标sqlserver 执行以下语句:
IF NOT EXISTS ( SELECT srv.name
FROM sys.servers srv
WHERE srv.server_id != 0
AND srv.name = N'Data_lnk' )
BEGIN
--//创建linkServer
EXEC sp_addlinkedserver 'Data_lnk', '', 'SQLOLEDB',
'ip';
--//登陆linkServer
EXEC sp_addlinkedsrvlogin 'Data_lnk', 'false', NULL, 'username',
'password';
END
即可创建名为 Data_lnk 的 dblink;
连接的远程数据库的 ip、username、password 即以上对应的 ip、username、password;
2:连接 dblink 访问数据库
建dblink之后,就可以远程访问数据库了。
查询:
select * from Data_lnk.dbname.dbo.tablename
如果是执行存储过程:
execute Data_lnk.dbname.dbo.procedurename
会报错:
未将服务器‘Data_lnk’ 配置为用于 RPC。
需要配置RPC,执行以下语句:
exec sp_serveroption @server='Data_lnk',@optname = 'rpc',@optvalue = 'TRUE'
exec sp_serveroption @server='Data_lnk',@optname = 'rpc out',@optvalue = 'TRUE'
重新执行存储过程,ok~