使用 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='mysql的用户                 名',@rmtpassword='mysql的密码'   3、查询数据       SELECT * FROM OPENQUERY (MySQLTest ,'select * from 表' )        下面这个不行:
       SELECT * FROM OPENQUERY (MySQLTest ,'表' ) 
       注意:不能直接用select * from 链接服务器名.数据库名.用户名.表(或视图) 四部分名称查询数据,可能是个Bug.

解决方案 »

  1.   

    参考这个:[code=SQL]
    /*
    标题:SQL Server 2000 连接mysql.
    作者:爱新觉罗.毓华 
    时间:2009-02-23
    地点:广东深圳
    */--连接mysql安装MySQL的ODBC驱动MyODBC1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为 myDSN2、建立链接数据库
    EXEC sp_addlinkedserver  @server = 'MySQLTest', @srvproduct='MySQL', @provider = 'MSDASQL', @datasrc = 'myDSN'
    GO
    EXEC sp_addlinkedsrvlogin  @rmtsrvname='MySqlTest',@useself='false',@locallogin='sa',@rmtuser='mysql的用户名',@rmtpassword='mysql的密码'3、查询数据SELECT * FROM OPENQUERY (MySQLTest ,'select * from 表' )4.如果Mysql修改密码后必须重新映射一下EXEC sp_addlinkedsrvlogin
    (http://topic.csdn.net/u/20090223/14/bd4eaef6-986e-483a-8155-5a563692d922.html)
    [/code]
      

  2.   

    --连接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= 'mysql的用户名 ',@rmtpassword= 'mysql的密码 ' 3、查询数据 SELECT   *   FROM   OPENQUERY   (MySQLTest   , 'select   *   from   表 '   ) --来源网络