SQL Server的链接服务器(MySQL、Oracle、Ms_sql、Access、SYBASE)

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 原文:SQL Server的链接服务器(MySQL、Oracle、Ms_sql、Access、SYBASE)一、使用 Microsoft OLE DB Provider For ODBC 链接MySQL 安装MySQL的ODBC驱动MyODBC 1、为MySQL建...
原文: SQL Server的链接服务器(MySQL、Oracle、Ms_sql、Access、SYBASE)

一、使用 Microsoft OLE DB Provider For ODBC 链接MySQL
安装MySQL的ODBC驱动MyODBC
1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为myDSN

2、建立链接数据库
EXEC sp_addlinkedserver @server = 'MySQLTest', @srvproduct='MySQL',
@provider = 'MSDASQL', @datasrc = 'myDSN'
GO
EXEC sp_addlinkedsrvlogin
@rmtsrvname='MySqlTest',@useself='false',@locallogin='sa',@rmtuser='mysql的用户名',
@rmtpassword='mysql的密码'

3、查询数据
SELECT * FROM OPENQUERY (MySQLTest ,'select * from 表' )
下面这个不行:
SELECT * FROM OPENQUERY (MySQLTest ,'表' )

注意:不能直接用select * from 链接服务器名.数据库名.用户名.表(或视图)

四部分名称查询数据,可能是个Bug.

二、使用 Microsoft OLE DB Provider For ORACLE 链接ORACLE

1、建立链接数据库
sp_addlinkedserver '别名', 'Oracle', 'MSDAORA', '服务名'
GO
EXEC sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',
@locallogin='sa',@rmtuser='oracle用户名',@rmtpassword='密码'

2、查询数据
SELECT * FROM 别名..用户名.表(视图)
注意:四部分名称全部用大写

3、执行存储过程
使用OPENQUERY:
SELECT * FROM OPENQUERY(别名, 'exec 用户名.存储过程名')

三、设置链接服务器以访问格式化文本文件
用于 Jet 的 Microsoft OLE DB 提供程序可用于访问并查询文本文件。
若要直接创建访问文本文件的链接服务器而不将文件链接为 Access .mdb 文件中的表,请执行sp_addlinkedserver,如 下例所示。
提供程序是Microsoft.Jet.OLEDB.4.0,提供程序字符串为"Text"。数据源是包含文本文件的目录的完整路径名称。 schema.ini 文件(描述文本文件的结构)必须与此文本文件存在于相同的目录中。有关创建 schema.ini文件的更多信 息,

请参见 Jet 数据库引擎文档。

--Create a linked server.
EXEC sp_addlinkedserver txtsrv, 'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'c:\data\distqry',
NULL,
'Text'
GO

--Set up login mappings.
EXEC sp_addlinkedsrvlogin txtsrv, FALSE, NULL, Admin, NULL

GO

--List the tables in the linked server.
EXEC sp_tables_ex txtsrv

GO

--Query one of the tables: file1#txt
--using a 4-part name.
SELECT *
FROM txtsrv...[file1#txt]

四、链接SQL Server服务器:

1、使用 ODBC 的 Microsoft OLE DB 提供程序

EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};
SERVER=远程名;UID=用户;PWD=密码;'
如果加上参数@catalog,可以指定数据库
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',
@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'

2、使用SQL Server 的 Microsoft OLE DB 提供程序

exec sp_addlinkedserver @server='别名',@provider='sqloledb',
@srvproduct='',@datasrc='远程服务器名'
exec sp_addlinkedsrvlogin @rmtsrvname='wzb',@useself='false',
@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'

然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go

例1、

此示例在 SQL Server 的实例上创建一台名为 S1_instance1 的链接服务器,该服务器使用 SQL Server的 Microsoft OLE DB 提供程序。

EXEC sp_addlinkedserver @server='S1_instance1', @srvproduct='',
@provider='SQLOLEDB',
@datasrc='S1\instance1'

例2、

--建立链接服务器
EXEC sp_addlinkedserver 'xiaoming','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=192.168.0.1;UID=sa;PWD=123;'
--建立链接服务器登录映射
exec sp_addlinkedsrvlogin

@rmtsrvname='xiaoming',@useself='false',@locallogin='sa',@rmtuser='sa',

@rmtpassword='123'
go
--查询数据
select * from xiaoming.schooladmin.dbo.agent

--删除链接服务器登录映射和链接服务器:
exec sp_droplinkedsrvlogin 'xiaoming' ,'sa'
exec sp_dropserver 'xiaoming'

注意事项:

SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF }
所以不能通过连接服务器设置此属性
into 也存在这样的问题
select * into xiaoming.northwind.dbo.tt from

xiaoming.northwind.dbo.tt

五、设置链接服务器以访问Access数据库

使用用于 Jet 的 Microsoft OLE DB 提供程序
此示例创建一台名为 test的链接服务器。

说明 本示例假设已经安装 Microsoft Access 和示例 Northwind 数据库,且

Northwind 数据库驻留在 C:\。

USE master
GO
-- To use named parameters:
EXEC sp_addlinkedserver
@server = 'test',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'C:\Northwind.mdb'
GO
-- OR to use no named parameters:
USE master
GO
EXEC sp_addlinkedserver
'test',
'OLE DB Provider for Jet',
'Microsoft.Jet.OLEDB.4.0',
'C:\Northwind.mdb'
GO
使用
select * from test...表名

六、连接SYBASE
--首先,你要在SQL服务器上装上访问sybase的客户端

--创建链接服务器
exec sp_addlinkedserver 'Sybase1', ' ', 'MSDASQL', NULL, NULL
,'Driver={Sybase System

11};Database=hisdb;Srvr=10.211.135.12;UID=sa;PWD=1111;'
使用:
select * from Sybase1.hisdb.dbo.table1

方法二
使用ODBC
SQL Server到SYBASE连接服务器的实现

作者: CCBZZP


本文的测试环境为:
操作系统: WINDOWS2000 SERVER (繁体系统)
安装数据库: SQLSERVER2000(英文版)和SYBASE8.0客户端(英文版)

具体实现步骤:
1.要求pc机上安装SYBASE8.0客户端软件和sqlserver2000软件。
2.配置windows的ODBC数据源:
开始菜单—》程式集—》系统管理工具—》资料数据源(ODBC)—》进入配置用

户DSN或者系统DSN均可以:添加—》选择ADAPTIVE SERVER ANYWHERE8.0—》自定

义数据源名称(随意如: SYBASETEST)—》数据库名称(必选!)—》OK完成。

3. 选择刚才配置的数据源名称, 再选择 配置, 跳出SYBASETEST MESSAGES:

The data source is not connected. Connecting to the data source will

provide useful information during configuration. Would you like to

connect to the data source?

选择YES(OK或确认)即可

进入CONNECT TO SYBASE DATABASE画面:

USER ID: 输入SYBASE DATABASE的用户

PASSWORD: 输入SYBASE DATABASE的用户的密码

CONNECTION MODE: 可以选择默认的SHARE模式

选择OK(确认)即可!

配置和测试ODBC完成!


4.配置sqlserver2000中的连接服务器:
企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名

称; 选其他数据源; 指定程序名称为:SYBASE ADAPTIVE SERVER ANYWHERE

PROVIDER8.0; 产品名称可不填; 数据源指定刚才ODBC中定义好的数据源名称;

提供程序字符串按以下格式填写:User ID=username;Password=userpasswd(或者

按如下格式:UID=username;PWD=userpasswd),这里的用户名和密码对应所要连

接的SYBASE数据库中的用户名和密码 —》 安全性标签页里:设置用此安全上下

文进行,并录入SYBASE的数据库用户名和密码—》服务器选项标签页可默认—》

确定。
5.准备工作全部完成!在sqlserver企业管理器—》安全性—》连接服务器打开刚

建好的连接服务器—》点击表,即可在右边窗口看到该SYBASE数据库用户拥有的

的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析

器中用具体sql实现!访问表时,使用格式为: [连接服务器名]..[SYBASE用户

].[表名]。更详细具体的使用这里不再赘述。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
20天前
|
存储 Oracle 关系型数据库
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
从基本特性、技术选型、字段类型、事务提交方式、SQL语句、分页方法等方面对比Oracle和MySQL的区别。
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
|
4天前
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
15 2
|
1月前
|
存储 关系型数据库 MySQL
使用Docker快速部署Mysql服务器
本文介绍了如何使用Docker快速部署MySQL服务器,包括下载官方MySQL镜像、启动容器、设置密码、连接MySQL服务器以及注意事项。
142 18
|
2月前
|
SQL 关系型数据库 MySQL
mysql密码错误-ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes)
这篇文章提供了解决MySQL数据库"Access denied for user 'root'@'localhost' (using password: YES)"错误的方法,通过跳过密码验证、修改root密码,然后重启服务来解决登录问题。
mysql密码错误-ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes)
|
2月前
|
关系型数据库 MySQL 网络安全
有关使用Navicat 无法成功连接腾讯云服务器上Mysql的问题解决
这篇文章提供了解决Navicat无法连接腾讯云服务器上MySQL问题的步骤,包括调整防火墙设置、更新MySQL权限和检查远程连接配置。
有关使用Navicat 无法成功连接腾讯云服务器上Mysql的问题解决
|
2月前
|
关系型数据库 MySQL Linux
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
|
20天前
|
SQL 安全 Oracle
SQL Server 链接服务器(Linked Servers)
【9月更文挑战第12天】SQL Server 的链接服务器功能强大,可让你在一个实例中访问其他数据源,包括其他 SQL Server 实例、Oracle 数据库等。它支持数据集成、分布式查询和数据同步,无需复制数据。创建链接服务器需在 SQL Server Management Studio 中进行,并配置名称、类型及安全性。使用时需注意权限、性能和安全性问题,确保系统稳定和数据安全。
|
2月前
|
关系型数据库 MySQL Linux
数据类型和运算符(MySQL服务器的安装,MySQL客户端,数据类型,运算符,MySQL的语法规范)
无论是对于初学者还是有经验的开发者,了解MySQL的安装、客户端使用、数据类型、运算符和语法规范都是至关重要的。这不仅有助于高效地管理和查询数据,而且对于设计和实现数据库解决方案来说是基础工作。通过深入学习和实践这些知识,您可以更好地发挥MySQL数据库的强大功能。
24 2
|
2月前
|
Oracle 关系型数据库 MySQL
Mysql和Oracle数据库死锁查看以及解决
【8月更文挑战第11天】本文介绍了解决MySQL与Oracle数据库死锁的方法。MySQL可通过`SHOW ENGINE INNODB STATUS`查看死锁详情,并自动回滚一个事务解除死锁;也可手动KILL事务。Oracle则通过查询V$LOCK与V$SESSION视图定位死锁,并用`ALTER SYSTEM KILL SESSION`命令终止相关会话。预防措施包括遵循ACID原则、优化索引及拆分大型事务。
|
2月前
|
SQL Ubuntu 关系型数据库
如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
30 0

推荐镜像

更多
下一篇
无影云桌面