• SQL Server的Linked Servers


    文章搬运自: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名称访问远程数据库对象,详情查看:

    Synonyms (Database Engine)

    CREATE SYNONYM (Transact-SQL)

    举例一下自己的使用示例:

    要连接的远程数据库,所在的电脑系统如果需要用户名和密码登进,也不影响,待验证。

  • 相关阅读:
    Java 8简明教程
    Redis事务机制和分布式锁
    【 Tomcat 】tomcat8.0 基本参数调优配置-----(2)
    【 Tomcat 】tomcat8.0 基本参数调优配置-----(1)
    Nginx的一理解(2)
    Nginx的一理解(1)
    jav设计模之的动态代理
    Java设计模式之《适配器模式》及应用场景
    Java设计模式之三种工厂模式
    pytorch高阶op
  • 原文地址:https://www.cnblogs.com/zwh1993/p/13848315.html
Copyright © 2020-2023  润新知