• Sqlserver 使用同义词跨服务器数据库连表查询


      跨服务器,跨数据库查询并不是什么新鲜事,不过之前在工作中看到一段代码,之前也没有接触过数据库同义词,发现挺方便的。代码示例类似这样:

      代码很普通,奇怪之处在于A 表在服务器ServerA的DatabaseA中,而B表在服务器ServerB的DatabaseB中。于是我第一反应是linked server,但可以这样写吗?没远程Server 的ip,没数据库名,居然也可以连表?于是开始Google。

      之后得出结论,确实使用了linked server,但加上了同义词 synonym。以下开始练习:

      1.首先建了数据库TestA,里面有表UserInfo,里面有一条记录,:

      

      2.然后建数据库TestB,表RoleInfo,也只有一条记录:

      

      先直接跨数据库查询,成功(这里我在本机在测试,因此就不加上跨Server了。如果需要跨Server测试,也是一样,只需要在数据库前加Server 示例地址就好)!得出结果:

      看,sql 脚本需要指定数据库名,如果跨了服务器,还需要指定IP,这么麻烦,也易出错,需要改进:

      3.先添加linked server:

      

      

      4.给需要连接的表使用刚创建的linked server 创建同义词,

      

       5.最后一步,可以直接连表查询啦:

      

       参考地址:

      https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-addlinkedserver-transact-sql?view=sql-server-2017

      https://docs.microsoft.com/en-us/sql/relational-databases/synonyms/synonyms-database-engine?view=sql-server-2017

      

      

  • 相关阅读:
    cmd设置代理
    移动端坐标定位tap
    T02-Django基本应用结构
    支持向量机算法的Sklearn完整复现
    T01-何为Django,入门"Hello World"
    决策树算法的Sklearn完整复现
    逻辑回归算法的Sklearn完整复现
    线性回归算法Sklearn完整复现
    K-近邻算法的Sklearn完整复现
    数据分析中的'疑难杂症'小结(三)
  • 原文地址:https://www.cnblogs.com/lhgohead/p/11015610.html
Copyright © 2020-2023  润新知