创建链接服务器或使用OPENROWSET()

解决方案 »

  1.   

    创建链接服务器以在使用 ODBC 数据源时访问 ODBC 数据库:
    1、在安装 SQL Server 的计算机上创建系统数据源。 
    2、执行 sp_addlinkedserver 创建链接服务器,指定 MSDASQL 或 NULL 为 provider_name,指定 ODBC 系统数据源的名称为 data_source。 
    SQL Server 在 Microsoft Windows NT 上作为服务运行,而服务并非总能访问用户数据源,因此ODBC 用户数据源无法用于分布式查询。例如,名为 SystemDSN 的系统数据源引用运行 SQL Server 的服务器,且该服务器以 pubs 作为默认数据库:sp_addlinkedserver 'SQLPubs', ' ', 'MSDASQL', 'SystemDSN'链接服务器可以使用用于 ODBC 的 OLE DB 提供程序,而不必使用 ODBC 数据源。链接服务器只需一步即可定义。用于 ODBC 的 OLE DB 提供程序用来定位 ODBC 驱动程序以及连接 ODBC 数据源所需的全部信息都必须在 provider_string 中进行定义。 下例通过指定 provider_string,在名为 SalesSvr 的 SQL Server 的 pubs 数据库上,通过 ODBC 创建名为 SQLPubs 的链接服务器。sp_addlinkedserver 'SQLPubs', ' ', 'MSDASQL', NULL, NULL,
    'Driver={SQL Server};Database=pubs;Server=SalesSvr;UID=sa;PWD=;'
      

  2.   

    如果是频繁的使用 就用创建链接服务器
    反之 用OPENROWSET()就可以了
      

  3.   

    我在odbc安装了mysql 的驱动,odbc创建了目标mysql服务器的链接,ms_sql_server也创建链接服务器,  再在查询服务器中输入  select * from [ip].[数据库名].[表名]   mysql还是不支持访问,ms_sql_server的链接服务器里都已经能访问到目标mysql的表中的数据了,用查询分析器里写sql语句就是无法访问~
      

  4.   

    报错是[ip].[数据库名].[表名]  对象名无效,同是sqlserver远程互访可以使用这种方法,用dts也可以这样访问远程的mysql数据库, 存储过程无法访问,  有条件的大大可以自己配置一下访问远程mysql看一下~
      

  5.   

    现在打算通过C++写个中间件,创建sql_server的扩展存储过程来访问mysql,但这样会很麻烦增加很多工作量,希望能数据库之间的互访来实现,望csdn的各位大大拔刀相助~不胜感激~