问: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).sybase的数据库名.dbo.sybase的表名
注:如果在执行查询时发现这个问题:链接服务器"sybase"的OLEDB访问接口"MSDASQL"为列提供的元数据不一致。
解决方法::不要直接用下面这种语句
select*fromsybase.dbname.dbo.tablename
只需要换个语句,就能解决问题。具体语句如下:
select*fromopenquery(sybase,'select*fromdbname.dbo.tablename')