设服务器A里的MySQL的数据库test中有一表test1(id int, msg varchar(20)),其中有1条记录的msg里包含繁体字。现于服务器B里的SQL SERVER2008中使用MyODBC 5.1作链接服务器到A。当执行语句 select * from openquery(test,'select * from test.test1') 时,返回以下错误:
链接服务器 'test' 的 OLE DB 访问接口 'MSDASQL' 返回了对列 '[MSDASQL].msg' 无效的数据。当把msg中繁体字去掉以后,语句能够正常执行。另外,如果在SQL SERVER2000中,则包含繁体字也可以执行成功。请问如果才能在SQL SERVER2008也执行成功呢??

解决方案 »

  1.   

    http://blog.csdn.net/fredrickhu/archive/2009/09/21/4576036.aspx这个是2005的方法 可以参考下
      

  2.   

    谢谢fredrickhu(小F),其实我的问题不是如果使用链接服务器,是MySQL里包含繁体字时查询会出错的问题。如果不含繁体字,则查询能正常执行。
      

  3.   


    我也怀疑过是排序规则的问题,由于2000里是能正常执行的,我把2008里数据库的默认排序规则与链接服务器里的排序排序都改成和2000里默认的Chinese_PRC_CI_AS,但问题还是存在。