exec sp_addlinkedserver   'sybase1', 'Sybase system 11',
 'MSDASQL', '132.240.7.118,4100'exec sp_addlinkedsrvlogin  'sybase1', 'false',
null, 'sa', '' select COUNT(1) from sybase1.zcdynadb1.dbo.upcdr10092505exec sp_dropserver 'sybase1','droplogins'
提示错误:
链接服务器"sybase1"的 OLE DB 访问接口 "MSDASQL" 返回了消息 "[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序"。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "sybase1" 的 OLE DB 访问接口 "MSDASQL" 的数据源对象。
这是什么原因?
sybase 11的客户端已经安装,也配置好了,在sybase下可以运行 select COUNT(1) from upcdr10092505

解决方案 »

  1.   

    参考: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用户].[表名]。更详细具体的使用这里不再赘述。 
      

  2.   

    这个也行。
    SQL Server怎样才能访问sybase中的表
    ZDNet 软件频道 更新时间:2007-11-19 作者: 来源:赛迪网
    本文关键词:Sybase 访问 数据库 SQL Server 
      答:具体步骤如下:  1: 安装sybase客户端   版本的要求:   Sybase Client 11.9.2 for NT  1.1:安装完成后,运行开始->程序->sybase->Dsedit   1.2:选择菜单的'Server Object',-> 'Add' 输入服务名 比如 1.70   1.3:然后在Server列表中选择'1.70',双击右边的对话框server address栏,在Network Address Attribute对话框中 选择add 填入ip地址,比如132.228.1.70,4300,ok 确定   1.4:选择工具栏的Ping Server按钮测试是否能连通服务器(红色的类似闪电的按钮)   2:在ODBC中建立DSN>   管理工具->数据源ODBC   新建一个系统DSN,名称设为 1.70   在创建新数据源对话框中选择'Sybase System11'数据源驱动程序,   General属性的DSN datasouce name: 填入 1.70,   database: 填入sybase数据库名   确定保存   3:建立链接服务器   企业管理器->安全性->建链接服务器->新建链接服务器   3.1:常规标签栏目中   名称sybase,   服务器类型选其他数据源,在提供程序的名称中选择   Microsoft OLE DB Provider FOR ODBC  数据源:填入DSN名字 1.70   3.2:安全性栏目中   本地登陆填入sa   远程用户和远程密码填入sybase的用户名和密码   3.3:使用此安全上下文建立连接   远程登陆 输入sybase的用户名和密码   使用密码 输入密码   确定保存   4: 用sa身份登陆查询分析器   执行以下sql语句就能查出sybase数据   select * from 链接服务器名(本例子为sybase).sybase的数据库名.dbo.sybase的表名   注: 如果在执行查询时发现这个问题: 链接服务器 "sybase" 的 OLE DB 访问接口 "MSDASQL" 为列提供的元数据不一致。   解决方法:: 不要直接用下面这种语句   select * from sybase.dbname.dbo.tablename  只需要换个语句,就能解决问题。具体语句如下:   select * from openquery(sybase,'select * from dbname.dbo.tablename ')
      

  3.   

    可能驱动选择问题,建议先SSIS连接。