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

简介: 原文: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用户

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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
10月前
|
存储 缓存 监控
MySQL服务器配置优化:my.cnf参数调优指南
本文深入解析了MySQL核心配置参数及性能优化技巧,涵盖内存结构、调优原则、存储引擎优化、查询性能优化等内容,通过实战案例帮助读者构建高性能MySQL服务器配置,解决常见的性能瓶颈问题。
1405 0
|
11月前
|
SQL Web App开发 安全
SQL Server 2025 年 8 月更新 - 修复 CVE-2025-49759 SQL Server 特权提升漏洞
SQL Server 2025 年 8 月更新 - 修复 CVE-2025-49759 SQL Server 特权提升漏洞
879 2
SQL Server 2025 年 8 月更新 - 修复 CVE-2025-49759 SQL Server 特权提升漏洞
|
10月前
|
SQL Web App开发 安全
SQL Server 2025 年 9 月更新 - 修复 CVE-2025-47997 SQL Server 信息泄露漏洞
SQL Server 2025 年 9 月更新 - 修复 CVE-2025-47997 SQL Server 信息泄露漏洞
686 0
SQL Server 2025 年 9 月更新 - 修复 CVE-2025-47997 SQL Server 信息泄露漏洞
|
11月前
|
SQL 容灾 安全
云时代SQL Server的终极答案:阿里云 RDS SQL Server如何用异地容灾重构系统可靠性
在数字化转型的浪潮中,数据库的高可用性已成为系统稳定性的生命线。作为经历过多次生产事故的资深开发者,肯定深知传统自建SQL Server架构的脆弱性——直到遇见阿里云 RDS SQL Server,其革命性的异地容灾架构彻底改写了游戏规则。
|
SQL Web App开发 安全
SQL Server 2025年7月更新 - 修复 CVE-2025-49718 Microsoft SQL Server 信息泄露漏洞
SQL Server 2025年7月更新 - 修复 CVE-2025-49718 Microsoft SQL Server 信息泄露漏洞
1139 0
SQL Server 2025年7月更新 - 修复 CVE-2025-49718 Microsoft SQL Server 信息泄露漏洞
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
616 28
|
存储 SQL 关系型数据库
服务器数据恢复—云服务器上mysql数据库数据恢复案例
某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 在执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql脚本在生产库上执行,导致生产库上部分表被truncate,还有部分表中少量数据被delete。
395 25
|
安全 关系型数据库 MySQL
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
|
安全 关系型数据库 MySQL
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
|
SQL 存储 关系型数据库
MySQL/SqlServer跨服务器增删改查(CRUD)的一种方法
通过上述方法,MySQL和SQL Server均能够实现跨服务器的增删改查操作。MySQL通过联邦存储引擎提供了直接的跨服务器表访问,而SQL Server通过链接服务器和分布式查询实现了灵活的跨服务器数据操作。这些技术为分布式数据库管理提供了强大的支持,能够满足复杂的数据操作需求。
733 12

推荐镜像

更多