SQL Server的Linked Servers(链接)
我们在使用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是远程数据库中的对象名,如:表名,视图名,存储过程名等
其实在SQL Server Management Studio(SSMS)中建立Linked Server时,在General选项卡中,最重要的就是填写下面几个参数:
- Linked server:Linked Server的名称
- Provider:远程数据库类型的提供程序
- Data source:远程数据库服务器的名称或者IP地址
- Catalog:远程数据库的名字
然后在Security选项卡,输入登录远程数据库的用户名和密码:
最后需要注意,在Server Options选项卡上,我们要设置RPC和RPC Out两个选项为True,这样可以避免很多问题:
这样就使用SSMS建立好一个Linked Server了:
建立好Linked Server之后,我们还可以对远程数据库中的对象定义同义词(synonym),通过同义词(synonym)来简化使用Linked Server名称访问远程数据库对象,详情查看:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架