SQL server跨库链接服务器
SQL server进阶技能篇:SQL的跨库查询与链接服务器 - 知乎 (zhihu.com)
各位小伙伴们,关于MSSQL的基本技能篇前面一共写了10篇,也基本上算是告一段落,接下来将开始介绍进阶技能篇。在构思这个进阶技能篇的时候,一直在考虑先写哪个,其实到看到这部分内容能理解的人,基本上对SQL数据库知识已经了解到一定程度了,所以计划还是想到哪里写到哪里吧。

今天所要讲到的是跨库查询和链接服务器,在说这个跨库查询之前,有个基本的知识点必须明白:一个服务端上可能有多个实例,一个实例下可能有多个数据库。举个例子吧,服务端好比一栋楼,其中的实例好比楼中的很多房间,数据库呢相当于房间中的人,这个包含关系首先得理解,才能更好理解下面的内容:
(1)同实例下跨库查询:
在当前数据库连接状态下,需要查询同实例下,其他数据库里的表,引用方法: 数据库名..表名(或其他对象名) 代码如下
select  top 100 * from  stu_cou..cou

(2)跨实例(跨服务器)查询:
这种情况需要先建立链接服务器,然后才能联通查询。以MSSQL的链接服务器建立过程为例,过程简介如下:
1)在实例下找到“服务器对象”--“链接服务器”--右键--新建链接服务器;

2)在弹出的页面中,默认选中“常规”节点,填写链接服务器的名称,选择“提供程序”为SQL server, 在“数据源”栏输入对方数据库的实例地址和名称;

3)单击“安全性”选项卡,选中“使用此安全上下文建立连接”,输入对方的数据库名和密码;

4)单击服务器选项,双击修改RPC和RPC out的状态为“True”。

5)点击“确定”,此时链接服务器就新建完成,在左侧的对象资源管理器,依次展开“链接服务器”就可以查看到下面的数据库目录。
调用方法:链接服务器名 . 数据库名 . 用户名(如dbo). 表名(或其他对象名) 代码如下:
INSERT INTO WSND.ASMC.dbo.hzpytmp
VALUES('1','1','2')
select  * from WSND.ASMC.dbo.hzpytmp
 delete from WSND.ASMC.dbo.hzpytmp

使用示例
--查询示例
select * from ITSV.数据库名.dbo.表名
--导入示例
select * into 表 from ITSV.数据库名.dbo.表名
--以后不再使用时删除链接服务器
exec sp_dropserver 'ITSV ', 'droplogins '
--创建链接服务器
exec sp_addlinkedserver '链接服务器名', '', 'SQLOLEDB', '对方实例地址'
exec sp_addlinkedsrvlogin '链接服务器名', 'false',null,'登录用户名', '密码'
有兴趣的可以自己试试。
总结:
(1) 同实例下跨库查询用起来简单,跨实例访问首先需要保证网络和端口是通的,得连接的上才能做链接;
(2) 跨库链接访问对象和在本地访问本库的对象,用法基本上是一样的,可以insert、select也可以delete,但是跨库访问有可能会遇到数据库进制不一样,导致排序规则不一致进而影响数据关联的问题,这个需要在后面加上以下代码,指定排序规则;
collate Chinese_PRC_CI_AS
最后,链接服务器在处理事务的时候,还经常会遇到分布式服务的问题,这个留到下一篇讲述。今天的分享就到这里,如果觉得有用,请分享邀请更多小伙伴前来围观。
参考文档:Sql Server 数据库之间如何进行连接访问(同网跨网相同)_sql同一网段使用-CSDN博客
SQL server跨库链接服务器的更多相关文章
- SQL Server跨库跨服务器访问实现
		
我们经常会遇到一个数据库要访问另一个数据库,或者一台服务器要访问另一台服务器里面的数据库. 那么这个如何实现的呢? 相信看完这篇文章你就懂了! 同一台服务器跨库访问实现 1. 首先创建两个数据库Cro ...
 - SQL Server跨库复制表数据错误的解决办法
		
SQL Server跨库复制表数据的解决办法 跨库复制表数据,有很多种方法,最常见的是写程序来批量导入数据了,但是这种方法并不是最优方法,今天就用到了一个很犀利的方法,可以完美在 Sql Serv ...
 - sql server中创建链接服务器图解教程
		
转自sql server中创建链接服务器图解教程 1.展开服务器对象-->链接服务器-->右击"新建链接服务器" 注意:必须以数据库管理员身份登录(通常也就是sa帐号) ...
 - 64位sql server 如何使用链接服务器连接Access
		
原文:64位sql server 如何使用链接服务器连接Access 测试环境 操作系统版本:Windows Server 2008 r2 64位 数据库版本:Sql Server 2005 64位 ...
 - sql server 数据库创建链接服务器访问另外一个sql server 数据库
		
继上篇在sql server中创建链接服务器访问oracle数据库:http://www.cnblogs.com/527289276qq/p/4770379.html 本文介绍在sql server中 ...
 - SQL Server 跨库复制表方法小笔记
		
insert into tableA (column1,column2.....) SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'Data Source=127. ...
 - sql server 数据库创建链接服务器
		
本文介绍在sql server中创建链接服务器访问sql server数据库. 方法: 打开SSMS,新建程序,执行下面sql语句块: EXEC sp_addlinkedserver @server= ...
 - sql server中使用链接服务器访问oracle数据库
		
一. 安装配置oracle客户端 要访问orcale数据,必须在访问的客户端机器上安装oracle客户端. Orcale有两种形式的客户端: l 完整的客户端 包括访问服务器端数据库 ...
 - SQL Server跨库查询
		
方式一: 语句 SELECT * FROM 数据库A.dbo.表A a, 数据库B.dbo.表B b WHERE a.field=b.field "DBO"可以省略 如 SELEC ...
 - SQL Server 跨库同步数据
		
最近有个需求是要跨库进行数据同步,两个数据库分布在两台物理计算机上,自动定期同步可以通过SQL Server代理作业来实现,但是前提是需要编写一个存储过程来实现同步逻辑处理.这里的存储过程用的不是op ...
 
随机推荐
- 【单片机】滑稽AT89C52表情实现
			
[单片机]滑稽AT89C52表情实现 零.原因 在群里看到了这样一个表情: 这是用51做的,刚好开发板上有8个小灯,想实现一下. 一.代码 新建工程,写入如下代码: #include<reg52 ...
 - 学习EXTJS6(10)面向对象的基础框架-2【统一的组件模型】很重要
			
用到ExtJS,UNIGUI是以ExtJS为基础的框架.因此掌握基础组件模型太重要了.确实就是让自己知道其所以然. Ext中所有可视组件都继承自Ext.Component. 1.Ext.Compone ...
 - FreeSWITCH中SIP网关(Gateway)操作
			
freeswitch是一款简单好用的VOIP开源软交换平台. 以下是一篇关于FreeSWITCH中SIP网关(Gateway)操作的技术指南,基于提供的官方文档内容整理: 一.网关生命周期管理 1. ...
 - Centos 实现 MySql 8.0.40 主从配置
			
MySql 版本:8.0.40 服务器:10.120.75.50,10.120.75.51(共两台) 1. 配置主服务器(10.120.75.50) 1.1 编辑 MySQL 配置文件 首先,登录到主 ...
 - centos 7.9下载地址
			
http://isoredirect.centos.org/centos/7/isos/x86_64/ In order to conserve the limited bandwidth avail ...
 - toRefs 与 toRef 的详解
			
一.引言在 Vue 3 的响应式系统里,toRefs 和 toRef 是两个实用的工具函数,它们在处理响应式数据时发挥着重要作用.合理运用这两个函数,可以让我们在操作响应式对象和数组时更加灵活,避免一 ...
 - <HarmonyOS第一课08>保存应用数据
			
视频链接: https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101717498132814493 ?ha_so ...
 - SpringMVC返回值
			
字符串 /** * 测试返回字符串 * @param model model * @return 返回的字符串,通过视图解析器调整到jsp页面 */ @RequestMapping("/te ...
 - 【ROS】5.1 ARP攻击Turtlebot3汉堡Burger并解析移动报文
			
原视频 ARP攻击 实验环境推荐:Linux虚拟机×2:Ubuntu 20.04或18.04或kali,被攻击机安装好ROS: 提升能力环境推荐:不同真机下的Linux虚拟机×2:Ubuntu 20. ...
 - 操作系统 -- SLAB如何分配内存
			
在Linux系统中比页更小的内存对象要怎么分配呢? -- SLAB,学习下SLAB分配器的原理和实现 SLAB 与Cosmos物理页面管理器一样,Linux中的伙伴系统是以页面为最小单位分配到,现实更 ...