我们必须从 SQL Server 2005 实例链接服务器以 SQL Server 2000 实例。链接的服务器工作正常。但是如果我们尝试查询链接服务器通过由四部分组成的名称然后将它失败与下面的错误消息

 

SELECT *

FROM LinkServer.Northwind.dbo.Shippers

Error Message

Msg 7399, Level 16, State 1, Line 1

The OLE DB provider "SQLNCLI" for linked server "<Linked Server Name>" reported an error. The provider did not give any information about the error.

 

Msg 7312, Level 16, State 1, Line 1

Invalid use of schema or catalog for OLE DB provider "SQLNCLI" for linked server "<Linked Server Name>". A four-part name was supplied, but the provider does not expose the necessary interfaces to use a catalog or schema..

为了解决此问题,请检查是否 SQLNCLI oledb 提供程序"零水平只有"属性设置为 0。如果它

7399 都是 1 (或对),将发生错误。请确保其未选中状态。

要将"零水平只有"属性的设置,请转到

SQL 管理工作室->"服务器对象"->"链接的服务器"->"供应商"

右键单击"SQLNCLI"和转到属性并取消选中"零水平只有"属性

单击"确定",重新启动 SQL Server 服务。

clip_image002

您还可以更改此设置,通过注册表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Providers\SQLNCLI

LevelZeroOnly

如果我们将它设置为 1 然后允许仅 0 级 OLE DB 提供程序。如果是 0 (默认值),则允许 OLE DB 提供程序的所有级别。所以,该值指定是否支持所有 OLE DB 提供程序,或只是那些符合级别 0 OLE DB 接口。

其他解决方法是使用 OPENQuery 而不是 Four-Part 查询