我们在使用SQL Server时,有时会有这种需求,需要从一个SQL Server服务器A中,查询另一个SQL Server服务器B中的表,然后将SQL Server服务器A中的表和SQL Server服务器B中的表进行JOIN,像类似这种跨SQL Server服务器的SQL语句操作,我们就可以通过在SQL Server中建立Linked Servers来实现。
可以通过下面两篇微软的官方文档,来了解如何在SQL Server中建立Linked Servers:
Linked Servers (Database Engine)
Create Linked Servers (SQL Server Database Engine)
注意文章中这里有提到,如果建立Linked Server的远程数据库也是SQL Server(Linked Servers不光可以建立到SQL Server的远程连接,还可以建立到其它类型数据库,例如Oracle的远程连接),那么我们可以通过Linked Server来调用远程SQL Server数据库中的存储过程:
If the linked server is defined as an instance of SQL Server, remote stored procedures can be executed.
文中中这里有提到,访问Linked Server中远程数据库对象的格式如下,由四部分组成:
linked_server_name.catalog.schema.object_name
其中:
- linked_server_name是定义的Linked Server名称
- catalog是远程数据库的名字
- schema是远程数据库中的架构名
- object_name是远程数据库中的对象名,如:表名,视图名,存储过程名等