能否在MS SQL Server中连接不同服务器上的两张表?
在MS SQL Server中跨服务器连接表的实现方法及替代方案
MS SQL Server支持跨服务器表连接
完全可以实现,主要有两种常用方法:
方法1:创建链接服务器(Linked Server)
适合需要频繁跨服务器查询的场景,创建一次后可重复使用:
- 图形界面操作(SSMS):
展开「服务器对象」→「链接服务器」→右键「新建链接服务器」,填写远程服务器的IP/实例名、身份验证方式(可设置登录映射,关联本地账号与远程服务器的账号密码)。 - T-SQL命令创建:
-- 创建链接服务器 EXEC sp_addlinkedserver @server = N'RemoteSQLServer', -- 自定义链接服务器名称 @srvproduct = N'', @provider = N'SQLNCLI', -- SQL Server Native Client @datasrc = N'192.168.1.100\MSSQLSERVER'; -- 远程服务器IP+实例名 -- 设置登录映射(关联本地登录与远程服务器账号) EXEC sp_addlinkedsrvlogin @rmtsrvname = N'RemoteSQLServer', @useself = N'False', @locallogin = NULL, @rmtuser = N'remote_user', @rmtpassword = N'remote_pwd';
- 跨服务器查询示例:
SELECT local_tb.id, local_tb.name, remote_tb.order_no FROM LocalDB.dbo.LocalTable local_tb JOIN RemoteSQLServer.RemoteDB.dbo.RemoteTable remote_tb ON local_tb.id = remote_tb.local_id;
方法2:使用OPENROWSET函数
适合临时跨服务器查询,无需创建永久链接:
先开启Ad Hoc Distributed Queries配置:
sp_configure 'show advanced options', 1; RECONFIGURE; sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE;
然后执行跨服务器连接查询:
SELECT local_tb.*, remote_tb.* FROM LocalDB.dbo.LocalTable local_tb JOIN OPENROWSET( 'SQLNCLI', 'Server=192.168.1.100\MSSQLSERVER;Uid=remote_user;Pwd=remote_pwd;', 'SELECT * FROM RemoteDB.dbo.RemoteTable' ) remote_tb ON local_tb.id = remote_tb.local_id;
其他支持跨服务器连接的RDBMS
大部分主流关系型数据库都支持该功能,举例:
- MySQL:可使用FEDERATED存储引擎创建指向远程表的本地映射表,或通过
SELECT ... FROM [mysql://user:pass@remote_host/db/table]语法(需启用相应插件)。 - PostgreSQL:借助
dblink扩展实现,先创建扩展CREATE EXTENSION dblink;,再执行跨库连接查询:
SELECT local_tb.id, remote_tb.value FROM local_table local_tb JOIN dblink('host=192.168.1.101 port=5432 dbname=remote_db user=postgres password=123456', 'SELECT id, value FROM remote_table') AS remote_tb(id INT, value VARCHAR) ON local_tb.id = remote_tb.id;
- Oracle:创建数据库链接(Database Link),
CREATE DATABASE LINK remote_link CONNECT TO remote_user IDENTIFIED BY remote_pwd USING 'ORCL_REMOTE';,之后通过SELECT * FROM local_table a JOIN remote_table@remote_link b ON a.id = b.id;查询。
内容的提问来源于stack exchange,提问作者Lucas Correa
相关产品推荐
相关产品推荐

