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=‘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用户
].[表名]。更详细具体的使用这里不再赘述。
时间: 2024-10-08 12:16:36

SQL Server的链接服务器技术的相关文章

[翻译]——SQL Server使用链接服务器的5个性能杀手

原文:[翻译]--SQL Server使用链接服务器的5个性能杀手 前言: 本文是对博客http://www.dbnewsfeed.com/2012/09/08/5-performance-killers-when-working-with-linked-servers/的翻译, 如有翻译不对或不好的地方,敬请指出,大家一起学习进步.尊重原创和翻译劳动成果,转载时请注明出处.谢谢! 当使用链接服务器(Linked Servers)时,最昂贵的代价就是网络带宽间大量数据的传输.在正确的服务器书写正

SQL Server 添加链接服务器

原文:SQL Server 添加链接服务器 背景 在SQL SERVER中,如果我们查询数据库需要关联另外一台数据库中表,在这种情况下我们可以通过添加服务器链接来实现. 案列 方式1.sql server 提供了图形化界面,如下: 右键>>New Linked server 填写相关参数即可. 方式2.sql server 语句添加,如下: --code 释迦苦僧 EXEC master.dbo.sp_addlinkedserver @server = N'192.168.1.22', @sr

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建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为myDSN 2.建立链接数据库 EXEC sp_addlinkedserver @server = 'MySQLTest', @srvproduct='MySQL',

SQL Server 远程链接服务器详细配置

原文:SQL Server 远程链接服务器详细配置[转载] http://hi.baidu.com/luxi0194/blog/item/a5c2a9128a705cc6c2fd7803.html 远程链接服务器详细配置--建立连接服务器EXEC sp_addlinkedserver  '远程服务器IP','SQL Server'--标注存储EXEC sp_addlinkedserver@server = 'server', --链接服务器的本地名称.也允许使用实例名称,例如MYSERVER\S

SQL Server 2012链接服务器

第一步,在服务器对象,链接服务器那里新建链接服务器:输入要链接服务器的IP地址. 第二步,安全性输入连接数据的用户名和密码. 第三步,验证是不可以打开链接服务器库的表名,视图等数据. 第四步,如果要查询表的数据的方法是:[服务器的IP].[数据库名].dbo.[表名]这种方式去访问即可. SQL Server 2012链接服务器

SQL Server 通过链接服务器访问Oracle

数据库:SqlServer2005 .Oracle 11gR2 系统环境:windows Server 2008R2 32位. 最近在做项目时,需要通过sql的链接服务器访问Oracle.以前弄过sql访问sql,感觉挺简单的,以为访问Oracle也差不多,实际做过后才发现存在很多差距. 步骤: 1.SQL Server端Windows需装对应版本的Oracle客户端.(我安装Oracle9i客户端后通过PL/SQL访问Oracle11gR2,没有问题,但是通过链接服务器访问就无法查询) 2.O

SQL Server 创建链接服务器

遇到下列问题: 线上服务器A,中转服务器B,本地服务器C 数据在A上面,想在B上面操作类似 select * from [A].[database].table这样的SQL,不用去链接服务器,直接把处理结果导入B然后生成报表. 结果报错如下: 消息 7202,级别 11,状态 2,第 1 行在 sys.servers 中找不到服务器 'A'.请验证指定的服务器名称是否正确.如果需要,请执行存储过程 sp_addlinkedserver 以将服务器添加到 sys.servers. 解决思路:问题很

为SQL Server 增加链接到SQL Server 的链接服务器

整体的分析一下好有一个思路.我们的目的是完成一个到远程服务器的链接. 第一:我们要知道这台服务器在哪(也就是要知道它的IP地址,如果是在同一个网络中知道它的计算机名也是可以的.因为一台服务器上可以安装多个SQL Server 实例,如果我们要连接到非默认实例时我们要指定实例名) 第二:我们要以那个用户名登录到目标SQL Server 服务器上去. 第三:我们本地是以哪个用户登录的. ---------------------------------------------------------

SQL server添加链接服务器脚本

---恢复内容开始--- exec sp_addlinkedserver  'ZZSJK','','SQLOLEDB','192.168.10.22'  --链接服务器名称 ‘’ ip地址exec sp_addlinkedsrvlogin 'ZZSJK','false',null,'sa','itdbadmin'exec sp_serveroption 'ZZSJK','rpc out','true'  --这个允许调用链接服务器上的存储过程 ---恢复内容结束---