我在网了打了一些,先看下:
来看:http://www.voidcn.com/article/p-oindvgyq-ry.html
- 一、使用 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 链接服务器名.数据库名.用户名.表(或视图)
- 四部分名称查询数据,可能是个Bug.
- 二、使用 Microsoft OLE DB Provider For ORACLE 链接ORACLE
- 1、建立链接数据库
- sp_addlinkedserver ’别名’, ’Oracle’, ’MSDAORA’, ’服务名’
- GO
- EXEC sp_addlinkedsrvlogin @rmtsrvname=’别名 ’,@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’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ’Microsoft.Jet.OLEDB.4.0’,
- ’c:/data/distqry’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> NULL,108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ’Text’
- --Set up login mappings.
- EXEC sp_addlinkedsrvlogin txtsrv, FALSE, NULL, Admin, NULL
- --List the tables in the linked server.
- EXEC sp_tables_ex txtsrv
- --Query one of the tables: file1#txt
- --using a 4-part name.
- FROM txtsrv...[file1#txt]
- 四、链接sql Server服务器:
- 1、使用 ODBC 的 Microsoft OLE DB 提供程序
- EXEC sp_addlinkedserver ’别名’,’’,’MSDAsql’,NULL,’DRIVER={sql Server};SERVER=远程名;UID=用户;PWD=密码;’
- 如果加上参数@catalog,可以指定数据库
- exec sp_addlinkedsrvlogin @rmtsrvname=’别名 ’,@rmtuser=’sa’,@rmtpassword=’密码’
- 2、使用sql Server 的 Microsoft OLE DB 提供程序
- exec sp_addlinkedserver @server=’别名 ’,@provider=’sqloledb’,@srvproduct=’’,@datasrc=’远程服务器名’
- exec sp_addlinkedsrvlogin
- @rmtsrvname=’wzb’,@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’,’DRIVER={sql
- Server};SERVER=192.168.0.1;UID=sa;PWD=123;’
- --建立链接服务器登录映射
- @rmtsrvname=’xiaoming’,
- @rmtpassword=’123’
- --查询数据
- 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
- -- To use named parameters:
- EXEC sp_addlinkedserver
- @server = ’test’,108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> @provider = ’Microsoft.Jet.OLEDB.4.0’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> @srvproduct = ’OLE DB Provider for Jet’,
- @datasrc = ’C:/northwind.mdb’
- -- OR to use no named parameters:
- EXEC sp_addlinkedserver
- ’test’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ’OLE DB Provider ’Microsoft.Jet.OLEDB.4.0’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ’C:/northwind.mdb’
- 使用
- select * from test...表名
- 六、连接SYBASE
- --首先,你要在sql服务器上装上访问sybase的客户端
- --创建链接服务器
- exec sp_addlinkedserver ’Sybase1’, ’ ’, ’MSDAsql’, 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用户].[表名]。
现在说下我的问题:
我在用sql来建立连接的时候(我连的是oracle的服务器),我用了我装在本地的oracle客户端,按照向导建立完了已后,在使用下面视图的时候就看到了一个问题:
(select * from OPENQUERY(LINK_BIZ,'select * From cms.QX_SALDTL_V'))
错误:
服务器: 消息 7320,级别 16,状态 2,行 1
未能对 OLE DB 提供程序 'OraOLEDB.Oracle' 执行查询。
OLE DB 错误跟踪[OLE/DB Provider 'OraOLEDB.Oracle' ICommandText::Execute returned 0x80040155]。
是图就是出现错误时选择的连接方式
下面就提供一个正确的连接方式:
这们只要将上面的连接提供程序改为这个就行,其它的与上面的一样设置,现在我们再来执行上面的查询的时候就可以看到我们想要的结果了
最后要感谢给我提供帮助的朋友,感谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。