我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQLServer跨服务器操作数据库的图文方法(LinkedServer)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQLServer跨服务器操作数据库的图文方法(LinkedServer)

基础知识介绍

以SQL Server的数据库管理工具SSMS(SQL Server Management Studio)为平台进行操作。

SQL Server Management Studio (SSMS) 是用于管理SQL Server 基础结构的集成环境。 使用 SSMS,可以访问、配置、管理和开发 SQL Server、Azure SQL 数据库和 SQL 数据仓库的所有组件。 SSMS 在一个综合实用工具中汇集了大量图形工具和丰富的脚本编辑器,为各种技能水平的开发者和数据库管理员提供对 SQL Server 的访问权限。

 

什么是跨服务器操作?

跨服务器操作就是可以在本地连接到远程服务器上的数据库,可以在对方的数据库上进行相关的数据库操作,比如增删改查。

为什么要进行跨服务器操作

随着数据量的增多,业务量的扩张,需要在不同的服务器安装不同的数据库,有时候因为业务需要,将不同的服务器中的数据进行整合,这时候就需要进行跨服务器操作了。

跨服务器操作的工具是什么?

DBLINK(数据库链接),顾名思义就是数据库的链接,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。

方法一:用SSMS创建SQL Server远程链接服务器(LinkedServer)--简单链接到远程SqlServer

1. 打开SSMS -->登录到本地数据库 --> 服务器对象 --> 链接服务器(右键) --> 新建链接服务器,如下图:

 

2. 在弹出的对话框中输入相关信息

● 在【链接服务器】输入对方服务器的IP地址;

● 在【服务器类型】中选择【SQL Server】;

 

3. 点击左侧的【安全性】,出现如下页面,在第3步中输入对方数据库的账号密码即可。

 

点击确定按钮后,链接服务器(LinkedServer)就创建成功了。这时可以看到创建好的链接服务器:

 

查看链接服务器的代码: 在创建好的链接服务器上点右键,编写链接服务器脚本为 --> Create到 -->新查询编辑器窗口,即可打开刚刚创建的链接服务器的脚本。

 

--链接服务器(LinkedServer)创建完成后会自动生成相关代码 —— 链接到远程SQLServer数据库:

EXEC master.dbo.sp_addlinkedserver @server = N'192.168.110.189,1433',@srvproduct=N'SQL Server';
-- @rmtsrvname
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'192.168.110.189',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='########';

注意: 这里有一个弊端,那就是链接的是整个远程SqlServer中的所有数据库(一般只需要一个特定的数据库),而且链接服务器的名称是个IP且无法自定义! 所以,最好的方式还是通过代码直接创建链接数据库(见“三、代码详解”)。

链接服务器(LinkedServer)就创建成功后,我们就可以用创建好的DBLINK链接到远程的Linked服务器了。下面我们用创建好的试着查询对方服务器上的表来验证一下。

--查询链接服务器(LinkedServer)中数据的方法: [DBLINK名].[对方数据库名].[对方数据库下模式名].[对方数据库表名]

SELECT * FROM [192.168.110.189].[erp25new].[dbo].[fee_data]

上面FROM字段后面依此是[DBLINK名].[对方数据库名].[对方数据库下模式名].[对方数据库表名],表名前面的这些内容一个都不能少。

查询结果如下图:

 

方法二:SSMS创建SQLServer链接服务器(LinkedServer)--自定义链接到SqlServer的其它数据库

1. 【常规】选择页:

 

2.【安全性】选择页:

 

自定义链接数据库到SQLServer【新建链接服务器】对话框中需输入的相关信息说明:

1.【常规】页

● 在【链接服务器】中,输入 自定义的链接服务器别名,如:DBLINK_TO_TESTDB

● 在【服务器类型】中选择【其他数据源】;

▶[提供程序]中选择 第一个Microsoft OLE DB Provider for SQL Server

▶[产品名称]中,可以空白不填,也可以填写SQL Server { 注意提供程序是OLE DB Provider for SQL Server时产品名称这里必须为空白!}

▶[数据源]中 远程数据库的地址,端口\实例名 ,如 10.10.0.73,1433\MSSQLSERVER

▶[访问接口字符串]中,可以空着不填; 也可以填下方的:(注意######是密码,请换成自己的密码)

Provider=sqloledb;Data Source=10.10.0.73,1433\MSSQLSERVER;Initial Catalog=TESTDB;User Id=apps;Password=#####;

▶[目录]就是数据库名称,这里填上我们需要远程连上的数据库 TESTDB (可以换成自己实际的)。

2.【安全性】页

● 选择【使用此安全上下文建立连接(M)】

▶[远程登录]: 远程数据库的连接账号

▶[使用密码]: 远程数据库连接账号的密码

--链接服务器(LinkedServer)创建完成后会自动生成相关代码 —— 链接到远程的SQLServer数据库(自定义):

EXEC master.dbo.sp_addlinkedserver @server = N'DBLINK_TO_TESTDB',@srvproduct=N'',@provider=N'SQLNCLI', @dataclass="lazy" data-src=N'10.10.0.73';EXEC master.dbo.sp_addlinkedsrvlogin@rmtsrvname=N'DBLINK_TO_TESTDB',@useself=N'False',@locallogin=NULL,@rmtuser=N'apps',@rmtpassword='########';



USE [master]

GO

EXEC master.dbo.sp_addlinkedserver @server = N'DBLINK_TO_TESTDB', @srvproduct=N'', @provider=N'SQLNCLI', @dataclass="lazy" data-src=N'10.10.0.73,1433\MSSQLSERVER', @catalog=N'TESTDB'



EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TEST',@useself=N'False',@locallogin=NULL,@rmtuser=N'apps',@rmtpassword='########'

其他方式: 提供程序换成其它的, 如本机SQL Server Native Client 11.0 (SQL Server Native Client 11.0 不支持连接到SQL Server 2000或更早的版本) 等

 

方法三:用SSMS创建SQLServer链接服务器(LinkedServer)--链接到非SqlServer的其它数据库

 

四、代码详解:方法一和方法二是通过SSMS直接操作的,下方直接使用sql脚本来创建链接服务器(LinkedServer)

A. SSMS链接到远程SQLServer数据库

(本地SQLServer数据库链接服务器(LinkedServer)到远程SQLServer数据库。)

--LinkedServer链接到远程SQLServer数据库:

--1. 声明将要链接的‘链接名称(自定义)’,远程数据库产品名(或别名),(提供商,数据库服务器地址及实例名)

EXEC master.dbo.sp_addlinkedserver @server = N'DBLINK_TO_TESTDB',@srvproduct=N'SQL Server';

--2. 声明‘链接名称(自定义)’,@useself=N'False',@locallogin=NULL,将要链接的数据库服务器的账号和密码

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'192.168.110.189',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='########';

B. SSMS链接到远程非SQLServer数据库

(本地SQLServer数据库链接服务器(LinkedServer)到远程非SQLServer的数据库。如远程的MySQL、Oracle等数据库。)

--链接到远程的非SQLServerd数据库(如链接到远程MySQL、Oracle等数据库):

--1. 声明‘自定义的链接名称’,远程数据库产品名(或别名),提供商,数据库服务器地址及实例名

EXEC master.dbo.sp_addlinkedserver @server = N'TEST_SQL_SERVER',@srvproduct=N'TEST',@provider=N'SQLNCLI11', @dataclass="lazy" data-src=N'192.168.110.189';-

-2. 声明登录信息 ‘自定义的链接名称’,@useself=N'False',@locallogin=NULL,远程数据库的账号和密码

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TEST_SQL_SERVER',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='########';

实际例子-SQL Server通过Linkserver连接MySql

--通过SSMS链接到远程MySql数据库(SQL Server连接MySql)--使用的访问接口为:MySql Provider for OLE DB--

EXEC master.dbo.sp_addlinkedserver @server = N'DBLINK_TO_MysqlTESTDB', @srvproduct = N'MySql', @provider = N'MSDASQL', @provstr = N'Driver={MySQL ODBC 5.1 Driver};Server=10.167.69.6,3306/sytv;Database=TESTDB;User=root;Password=root;Option=3';--

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'DBLINK_TO_MysqlTESTDB', @useself = N'False', @locallogin = N'10.167.69.6,3306/sytv', @rmtuser = N'root', @rmtpassword = N'root';

实际例子-SQL Server通过Linkserver连接Oracle

--通过SSMS链接到远程Oracle数据库(SQL Server连接Oracle)

--使用的访问接口为:Oracle Provider for OLE DB

USE [master]

GO

--Declare Oracle OLEDB 'OraOLEDB.Oracle':

EXEC master.dbo.sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'AllowInProcess', 1;--Create the Linked Server to the ECT database in Oracle:

EXEC sp_addlinkedserver 'DBLINK_TO_OraTESTDB', 'Oracle', 'OraOLEDB.Oracle', '10.167.69.6/prt';--EXEC master.dbo.sp_addlinkedserver @server = N'DBLINK_TO_OraTESTDB', @srvproduct=N'oracle', @provider=N'OraOLEDB.Oracle', @dataclass="lazy" data-src=N'10.167.69.6/orcl'

--Create the Remote Login for the Oracle Linked Server:

EXEC sp_addlinkedsrvlogin @rmtsrvname=N'DBLINK_TO_OraTESTDB',@useself=N'False',@locallogin=N'apps',@rmtuser=N'SYSTEM',@rmtpassword='######'; 

--最后可以测试一下是否连接成功 --select * from openquery(DBLINK_TO_OraTESTDB,'select * from SYSTEM.HELP');

到此这篇关于SQL Server跨服务器操作数据库的图文方法(LinkedServer)的文章就介绍到这了,更多相关SQL Server跨服务器操作数据库内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQLServer跨服务器操作数据库的图文方法(LinkedServer)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SQLServer跨服务器操作数据库的图文方法(LinkedServer)

这篇文章主要介绍了SQLServer跨服务器操作数据库的方法,通过链接服务器(LinkedServer)实现SQLServer远程链接MySql等数据库,需要的朋友可以参考下
2022-11-13

SQLServer数据库误操作恢复的方法

本文主要介绍了SQLServer数据库误操作恢复的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-30

C语言中操作sqlserver数据库的方法

这篇文章主要讲解了“C语言中操作sqlserver数据库的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中操作sqlserver数据库的方法”吧!操作系统:windows 10
2023-06-17

SQL Server如何跨服务器操作数据库

本文小编为大家详细介绍“SQL Server如何跨服务器操作数据库”,内容详细,步骤清晰,细节处理妥当,希望这篇“SQL Server如何跨服务器操作数据库”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。基础知识介
2022-11-30

在cPanel面板中创建MySQL数据库操作方法(图文教程)

首先需要进入cPanel虚拟主机管理系统界面,在数据库模块下找到MySQL数据库,点击MySQL数据库,进入数据库创建界面:  在输入框里输入想要创建的数据库名称:  完成后,点击一下步,向导将会提示您创建数据库用户名,同时输入密码,如下如
2022-06-04

云服务器部署数据库怎么操作的

云服务器部署数据库操作通常是以下步骤:选择云服务器,并选择适当的数据库服务,例如MicrosoftAzure,AmazonWebServices或GoogleDrive等。配置云服务器,包括安装所需的软件和驱动程序,设置数据库连接参数,启动云服务器等。打开云服务器应用程序,将要查询的数据库连接参数配置为云服务器的IP地址或端口号。在云服务器上创建数据库,将其配置为一个公共的命名实例,例如MySQL。将数据库连接参数配置为所选云服务器的IP地址...
2023-10-27

云服务器数据备份到本地服务器上的操作方法

1.确定备份需求和目标在进行云服务器数据备份到本地服务器的操作之前,首先需要明确备份的需求和目标。确定需要备份的数据类型、备份频率、备份的目的地等。2.选择备份工具选择适合的备份工具是进行数据备份的关键一步。根据你的需求和服务器环境,可以选择以下几种备份工具:rsync:适用于Linux系统,可以实现增量备份和同步功能
2023-10-27

SQLServer如何通过SQL语句直接操作另一台服务器上的SQLSERVER的数据

这篇文章主要介绍了SQLServer如何通过SQL语句直接操作另一台服务器上的SQLSERVER的数据,需要的朋友可以参考下
2022-11-13

Android操作存放在assets文件夹下SQLite数据库的方法

本文实例讲述了Android操作存放在assets文件夹下SQLite数据库的方法。分享给大家供大家参考。具体如下: 因为这次的项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中了,之后把该文件放到了assets文件夹下面
2022-06-06

Node.js实现http请求服务与Mysql数据库操作方法详解

这篇文章主要介绍了Node.js实现http请求服务与Mysql数据库操作方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2022-11-13

PostgreSQL数据库事务插入删除及更新操作的方法

这篇文章主要介绍了PostgreSQL数据库事务插入删除及更新操作的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PostgreSQL数据库事务插入删除及更新操作的方法文章都会有所收获,下面我们一起来看看吧
2023-06-29

云服务器搭建数据库的方法

云服务器搭建数据库的方法因服务而异,以下是一些常见的方法:使用SASSASS是一种简单而强大的技术,可以使应用程序以更快和更低的成本进行部署和运行。它也可以提供更好的性能和更高的可靠性,但需要专门的服务器进行管理和维护。例如,可以使用SASSVPS或专门的SASSVPS来管理云服务器和数据库。使用WebDAVWebDAV是一种高效的数据存储和检索技术。它可以自动化数据访问和更新的流程,降低
2023-10-26

云服务器搭建数据库的方法是

1.选择云服务器首先,你需要选择一个云服务器提供商,例如阿里云、腾讯云、AWS等。根据你的需求选择适合你的服务器类型和配置。2.安装数据库软件在选择好云服务器后,你需要安装数据库软件。常见的数据库软件有MySQL、PostgreSQL、MongoDB等。你可以根据你的需求选择适合你的数据库软件。3.配置数据库安装好数据库软件后,你需要进行数据库的配置。这包括设置数据库的用户名和密码、创建数据库、设置数据库的字符集等...
2023-10-27

编程热搜

目录