SQL Server的链接服务器技术小结
一、使用 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='mys
ql的用户名',@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',@rmtp
assword='密码'
然后你就可以如下:
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连接服务器的实现
本文的测试环境为:
操作系统: 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用户].[表名]。更详细具体的使用这里不再赘述。
转载于:https://www.cnblogs.com/yunhuasheng/archive/2008/09/16/1291768.html
SQL Server的链接服务器技术小结相关推荐
- ole db提供程序 mysql_服务器_SQLServer的链接服务器技术小结,一、使用 Microsoft OLE DB Provider F - phpStudy...
SQLServer的链接服务器技术小结 一.使用 Microsoft OLE DB Provider For ODBC 链接MySQL 安装MySQL的ODBC驱动MyODBC 1.为MySQL建立一 ...
- SQL Server使用链接服务器的5个性能杀手
2014-06-25 SQLSERVER走起 SQLSERVER走起 SQLSERVER走起 微信号 SQLSERVERZOUQI 功能介绍 介绍SQL Server的一些相关资讯,让众多SQL ...
- Sql Server使用链接服务器远程取数据!
由于最近开发的一个查询系统,基本是在其它服务器的,所以在本地服务器设计了中间,用来存从远程服务器取数据! 一种方法是通过,OPENDATASOURCE来远程读取数据! SELECT * F ...
- 加菲猫软件显示不能链接服务器,sql server 2012 链接服务器不能链接sql server 2000的解决方案...
把原来的sql server 2005直接装成了2012,然后在建立链接服务器链接一台sql server 2000的服务器时,报错信息大概是"SQL Server Native Clien ...
- SQL SERVER使用链接服务器
1.在另一台机器上建立独立的数据库服务器,作为链接目标 2.本地数据库服务器上添加"链接服务器": 名字:随便取一个名字 服务器类型:选择数据源:Microsoft OLE DB ...
- [sql server][基础] 链接服务器
/* 环境 : 本地(xp+sql2005): select @@version icrosoft SQL Server 2005 - 9.00.1399.06 (Intel X86) Oct 14 ...
- SQL Server 2005链接服务器设置
我试验了两种不同的设置均获成功.两种设置的差异是采用了不同的访问接口.以下是两种设置的详细介绍. 打开Microsoft SQL Server Management Studio.选择服务器对象-〉链 ...
- SQL Server通过链接服务器访问Oracle
Windows SQL Server 2016 数据库通过链接服务器访问Oracle数据库. 借鉴了很多大佬的文章,但是由于外链失效.文章久远.安装包版本太低.自己积分清零等多重原因,导致了很多问题, ...
- sql修改链接服务器名称,SQL Server 创建链接服务器的脚本,自定义链路服务器的简短名称...
USE [master] GO /****** Object: LinkedServer [SQL01] Script Date: 2020/4/9 11:51:17 ******/ EXEC ...
最新文章
- Android Context activity实例使用
- eCos Mbox机制
- 图例符号居中显示_R可视化08|ggplot2图层-标度图层(scale layer)-图例篇
- 递归 图 java,《算法图解》之递归
- React中ref的使用方法
- react项目中的参数解构_重构复杂的React组件:编写高效且可读组件的5个最佳实践...
- python黑色背景_如何去除Matplotlib图中的黑色背景
- Magento教程 11:Inline Translation前台改文
- 用juniversalchardet解决爬虫乱码问题
- javascript/js计算器的基础制作
- 《价值投资 从看懂财务报表开始》 读书笔记
- python画地球代码_python的pygame模拟太阳-地球-月亮-金星等动态示意图代码分析
- 德州农工大学计算机专业研究生,德州农工大学计算机工程(无论文)理学硕士研究生申请要求及申请材料要求清单...
- Springboot 前后端交互 Long类型传输 前端获取数据受限
- Fluent计算出现“Floating point exception”时的解决办法
- 数据分析找不到数据?200个源数据网站全给你!
- Ubuntu快捷键——终端
- c++(最大公约数)
- ORB-SLAM:精确多功能单目SLAM系统
- 基于k210的水果分拣