当前位置:  数据库>sqlserver

SQL Server的链接服务器技术小结

    来源: 互联网  发布时间:2014-10-14

    本文导语:  一、使用 Microsoft OLE DB Provider For ODBC 链接MySQL 安装MySQL的ODBC驱动MyODBC 1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为 myDSN 2、建立链接数据库 EXEC sp_addlinkedserver @server = 'MySQLTest', @srvproduct='MySQL', @p...

一、使用 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='/tech-mssql/远程服务器名/index.html'
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='/tech-mssql/S1/instance1/index.html'

例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用户

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


    
 
 

您可能感兴趣的文章:

  • oracle SQL解析步骤小结
  • SQL Server SQL Agent服务使用教程小结
  • SQL对时间处理的语句小结
  • SQL 重复记录问题的处理方法小结
  • SQL Server复制功能要避开缺陷的干扰小结
  • 有关SQL Server SA权限问题的小结
  • sql server中default value默认值的用法小结
  • PL/SQL编程经验小结开发者网络Oracle
  • SQL查询效率注意事项小结
  • Oracle9iPL/SQL编程的经验小结
  • 世界杯猜想活动的各类榜单的SQL语句小结
  • 六条比较有用的MySQL数据库操作的SQL语句小结
  • SQLServer 获得用户最新或前n条订单的几种SQL语句小结
  • SQL SERVER 的SQL语句优化方式小结
  • SQL Server常用管理命令小结
  • SQL Server 2005 数据库转 SQL Server 2000的方法小结
  • MySQL导入导出.sql文件及常用命令小结
  • SQL语法 分隔符理解小结
  • SQL Server游标的使用/关闭/释放/优化小结
  • SQL学习笔记三 select语句的各种形式小结
  • java/j2ee iis7站长之家
  • MS SQL Server2014链接到MS SQL Server 2000的解决方案及问题处理
  • sql语句实例 统计页面链接的sql语句
  • sql语句实例 统计一个特定页面中的相关链接
  • 当用JDBC链接上数据库以后,执行SQL的时候...................
  • SQL Server创建链接服务器的存储过程示例分享
  • [求助]关于数据库链接的问题!在JBuild运行环境下能和sql server连接,但是发布到服务器上就不行了
  • sql2008数据库创建与删除链接服务器
  • sql数据库新增链接服务器
  • sql server中创建链接服务器与远程账户映射的语法
  • SQL 外链接操作小结 inner join left join right join
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sql 服务器知识
  • SQL Server 复制需要有实际的服务器名称才能连接到服务器
  • 谁用过sql server 2000?做jsp的数据库服务器?
  • 请问如何搜索在一个区域网内提供SQL数据库服务的服务器的名字?
  • 跨服务器查询导入数据的sql语句
  • 同一个sql语句 连接两个数据库服务器
  • sql数据库建立跨服务器连接的方法
  • 如果服务器不是本机(程序在一服务器,数据库在一服务器,局域网),如何连接sql ??
  • SQl 跨服务器查询语句
  • 请教:怎么用JSP把图片上传到服务器SQL Server数据库?
  • 微软数据库服务器 SQL Server
  • sql语句获取数据库服务器上所有数据库的名字
  • sql 语句 取数据库服务器上所有数据库的名字
  • sql server 跨服务器查询的例子
  • C#列出局域网中可用SQL Server服务器
  • sql server 跨服务器查询的小例子
  • 欢迎讨论:JSP+SQL Server+Apache建立一个Web服务器有什么值得注意的问题?(之二)
  • 各位大侠,请问用SQL SERVER2000数据库,在JSP中用String tmp=rs.getString("link1");,用的是Jrun服务器,老是出错,为什么?
  • SQL高级应用之同服务器上复制表到另一数据库中并实现去重复
  • SQL Server误区30日谈 第1天 正在运行的事务在服务器故障转移后继续执行
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3