SQL Server如何访问sybase数据库的表

核心提示:安装完成后,运行开始-程序-sybase-Dsedit

问:SQLServer应该怎样访问Sybase数据库的表? 答:具体方法如下:
1:安装Sybase客户端 版本的要求: SybaseClient11.9.2forNT
1.1:安装完成后,运行开始->程序->Sybase->Dsedit
1.2:选择菜单的’ServerObject’,->’Add’输入服务名比如1.70
1.3:然后在Server列表中选择’1.70′,双击右边的对话框serveraddress栏,在NetworkAddressAttribute对话框中选择add填入ip地址,比如132.228.1.70,4300,ok确定
1.4:选择工具栏的PingServer按钮测试是否能连通服务器 2:在ODBC中建立DSN>
管理工具->数据源ODBC 新建一个系统DSN,名称设为1.70
在创建新数据源对话框中选择’SybaseSystem11’数据源驱动程序,
General属性的DSNdatasoucename:填入1.70, database:填入sybase数据库名
确定保存 3:建立链接服务器
企业管理器->安全性->建链接服务器->新建链接服务器
3.1:常规标签栏目中 名称Sybase,
服务器类型选其他数据源,在提供程序的名称中选择
MicrosoftOLEDBProviderFORODBC 数据源:填入DSN名字1.70 3.2:安全性栏目中
本地登陆填入sa 远程用户和远程密码填入sybase的用户名和密码
3.3:使用此安全上下文建立连接 远程登陆输入sybase的用户名和密码
使用密码输入密码 确定保存 4:用sa身份登陆查询分析器
执行以下sql语句就能查出sybase数据
select*from链接服务器名.sybase的数据库名.dbo.sybase的表名
注:如果在执行查询时发现这个问题:链接服务器”sybase”的OLEDB访问接口”MSDASQL”为列提供的元数据不一致。
解决方法::不要直接用下面这种语句 select*fromsybase.dbname.dbo.tablename
只需要换个语句,就能解决问题。具体语句如下:
select*fromopenquery(sybase,’select*fromdbname.dbo.tablename’)

一、使用 Microsoft OLE DB Provider For ODBC 链接MySQL

一 安装sybase客户端

安装MySQL的ODBC驱动MyODBC

版本:Sybase Client 11.9.2 for NT

1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为

1)安装完成后,运行开始-程序-sybase-Dsedit

myDSN

2)选择菜单的Server Object,- Add 输入服务名 比如 1.70

2、建立链接数据库

3)然后在Server列表中选择1.70,双击右边的对话框server address栏,在Network
Address Attribute对话框中 选择add 填入ip地址,比如132.228.1.70,4300,ok
确定

EXEC sp_addlinkedserver @server = 'MySQLTest', @srvproduct='MySQL', @provider = 'MSDASQL', @datasrc = 'myDSN'GOEXEC sp_addlinkedsrvlogin @rmtsrvname='MySqlTest',@useself='false',@locallogin='sa',@rmtuser='mysql的用户名',@rmtpassword='mysql的密码'

4)选择工具栏的Ping Server按钮测试是否能连通服务器 (红色的类似闪电的按钮)

3、查询数据

二 在ODBC中建立DSN

SELECT * FROM OPENQUERY (MySQLTest ,’select * from 表’ )

管理工具-数据源ODBC

下面这个不行:SELECT * FROM OPENQUERY (MySQLTest ,’表’ )

新建一个系统DSN,名称设为 1.70

注意:不能直接用select * from 链接服务器名.数据库名.用户名.表(或视图)

在创建新数据源对话框中选择Sybase System11数据源驱动程序,

四部分名称查询数据,可能是个Bug.

General属性的DSN datasouce name: 填入 1.70,

二、使用 Microsoft OLE DB Provider For ORACLE 链接ORACLE

database: 填入sybase数据库名

1、建立链接数据库

确定保存

sp_addlinkedserver '别名', 'Oracle', 'MSDAORA', '服务名'GOEXEC sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='oracle用户名',@rmtpassword='密码'

三 建立链接服务器

2、查询数据

企业管理器-安全性-建链接服务器-新建链接服务器

SELECT * FROM 别名..用户名.表(视图)

1)常规标签栏目中

注意:四部分名称全部用大写

名称sybase,

3、执行存储过程

服务器类型选其他数据源,在提供程序的名称中选择Microsoft OLE DB Provider
FOR ODBC,

使用OPENQUERY:SELECT *FROM OPENQUERY(别名, ‘exec 用户名.存储过程名’)

数据源:填入DSN名字 1.70

三、设置链接服务器以访问格式化文本文件

2)安全性栏目中

用于 Jet 的 Microsoft OLE DB 提供程序可用于访问并查询文本文件。

本地登陆填入sa

若要直接创建访问文本文件的链接服务器而不将文件链接为 Access .mdb 文件中

远程用户和远程密码填入sybase的用户名和密码

的表,请执行 sp_addlinkedserver,如下例所示。 提供程序是
Microsoft.Jet.OLEDB.4.0,提供程序字符串为”Text”。数据源是包

3)使用此安全上下文建立连接

含文本文件的目录的完整路径名称。schema.ini 文件必

远程登陆 输入sybase的用户名和密码

须与此文本文件存在于相同的目录中。有关创建 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

四 用sa身份登陆查询分析器

–Set up login mappings.EXEC sp_addlinkedsrvlogin txtsrv, FALSE, NULL,
Admin, NULLGO

执行以下sql语句就能查出sybase数据

–List the tables in the linked server.EXEC sp_tables_ex txtsrvGO

select * from
链接服务器名(本例子为sybase).sybase的数据库名.dbo.sybase的表名

–Query one of the tables: file1#txt–using a 4-part name. SELECT *
FROM txtsrv…[file1#txt]

注意: 如果在执行查询时发现这个问题: 链接服务器 sybase 的 OLE DB 访问接口
MSDASQL 为列提供的元数据不一致。

四、链接SQL Server服务器:

解决办法:: 不要直接用select * from
sybase.dbname.dbo.tablename这种语句,换个语句,就可以解决问题了。语句如下:select
* from openquery(sybase,select * from dbname.dbo.tablename )

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 masterGO– 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 masterGOEXEC 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

方法二使用ODBCSQL Server到SYBASE连接服务器的实现 作者: CCBZZP

本文的测试环境为:操作系统: WINDOWS2000 SERVER (繁体系统)安装数据库:
SQLSERVER2000(英文版)和SYBASE8.0客户端(英文版)

具体实现步骤: 1.要求pc机上安装SYBASE8.0客户端软件和sqlserver2000软件。
2.配置windows的ODBC数据源:
开始菜单—》程式集—》系统管理工具—》资料数据源—》进入配置用

户DSN或者系统DSN均可以:添加—》选择ADAPTIVE SERVER ANYWHERE8.0—》自定

义数据源名称—》数据库名称—》OK完成。

  1. 选择刚才配置的数据源名称, 再选择 配置, 跳出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用户

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注