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

摘要:
所以我的第一反应是链接服务器,但我能这样写吗?如果没有远程服务器的IP地址和数据库名称,您可以连接表吗?结论是使用了链接服务器,但添加了同义词同义词。结果如下:看,sql脚本需要指定数据库名称。如果它穿过服务器,它还需要指定IP地址,这非常麻烦并且容易出错。它需要改进:3。首先添加链接服务器:4。使用新创建的linkedserver为需要连接的表创建同义词,5。最后,您可以直接将表连接到查询:引用地址:https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-addlinkedserver-transact-sql?

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

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

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

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

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

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

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

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

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

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

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

  3.先添加linked server:

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

  

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

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

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

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

   参考地址:

  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

  

  

免责声明:文章转载自《Sqlserver 使用同义词跨服务器数据库连表查询》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇gitlab 500 服务器错误 重启解决了程序命名规则下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

黑客入侵的常法

      1.无论什么站,无论什么语言,我要渗透,第一件事就是扫目录,最好一下扫出个上传点,直接上传 shell ,诸位不要笑,有时候你花很久搞一个站,最后发现有个现成的上传点,而且很容易猜到,不过这种情况发生在 asp 居多!    2.asp ( aspx )+MSSQL 先考虑注入,一般的注入都有 DBowner 权限可以直接写 shell ;如果...

C#实现对数据库的备份还原(完全)

C#实现对数据库的备份还原        ( 用SQL语句实现对数据库备份还原操作        备份SqlServer数据库:  backup database 数据库名 to disk (备份文件存放路径+文件名).bak   还原SqlServer数据库:  string path = this.FileUpload1.PostedFile.Fil...

Oralce表空间创建和管理

1.表空间的概述    1.表空间是数据库的逻辑组成部分。     2.从物理上讲,数据库数据存放在数据文件中;     3.从逻辑上讲,数据库是存放在表空间中,表空间由一个或者多个数据文件组成。   2.oracle的逻辑组成    1.oracle 的逻辑结构包含 表 空间 段 区 块         2.数据库是由表空间构成,表空间又是有段构成,段是...

SQL Server對象的最大容量限制

      SQL Server 数据库引擎对象 最大大小/数量 - SQL Server(32 位) 最大大小/数量 - SQL Server(64 位) 批大小1 65,536 * 网络数据包大小 65,536 * 网络数据包大小 每个短字符串列的字节数 8,000 8,000 每个 GROUP BY、ORDER BY 的字节数 8,0...

MongoDB用户与角色管理

(一)用户管理(1)创建用户1.要添加用户,MongoDB提供了db.createUser()方法。添加用户时,可以为用户分配角色,授予权限。2.在数据库中创建的第一个用户应该具有管理其他用户的权限。3.添加用户时,可以在特定的数据库中创建该用户,该数据库是用户的身份验证数据库。用户可以在不同的数据库之间拥有特权,也就是说,用户的权限不限于其身份验证数据...

MongoDB中导出数据为csv文件

1. 打开命令行; 2. 输入如下指令(确保数据库是开着的,下面的数据库名称和集合名称以及域的名称可以根据需求修改) mongoexport -d myDB -c user -f _id,name,password,adress --csv -o ./user.csv 3. 说明: mongoexport -d myDB(myDB修改成...