日期:2014-05-18  浏览次数:21003 次

sql链接服务器链接mysql
我在sqlserver里建立了一个连接mysql的链接服务器,而且已成功,现在通过以下查询是可以成功的:
select * from openquery(mysqllink,'select * from ffff.tbb')--mysqllink为链接服务器名称,ffff为数据库,tbb为表名
如果我改用下边的语句查询则会报错:
select * from MYSQLLINK.ffff.dbo.tbb
错误如下:
消息 7312,级别 16,状态 1,第 1 行
对链接服务器 "MYSQLLINK" 的 OLE DB 访问接口 "MSDASQL" 的架构或目录的使用无效。提供了由四部分构成的名称,但访问接口并未显示必要的接口来使用目录或架构。
请问会什么不能这样查询?
因为我需要对这个查询表做一个同义词好方便我做其他查询之用:
CREATE SYNONYM tongyici FOR MYSQLLINK.dbo.ffff.tbb
查询可以这样写了:
SELECT * FROM tongyici 


------解决方案--------------------
我也觉得是架构问题
------解决方案--------------------
http://msdn.microsoft.com/en-us/library/ms187072.aspx

The following table shows the OLE DB providers that have been tested with SQL Server distributed queries. All these providers support being referenced in a SELECT statement by specifying a pass-through query in the OPENQUERY and OPENROWSET functions.

Data source | Provider name |Use in four-part names 
SQL Server 7.0 or later | Microsoft SQL Server Native Client OLE DB Provider |Yes 
ODBC Data Sources | Microsoft OLE DB Provider for ODBC |Yes*
etc.


* The capabilities of the Microsoft OLE DB Provider for ODBC depend on the ODBC driver that is being used. The provider may not support all these capabilities with some ODBC drivers.