排查链接服务器的 OLE DB 访问接口错误

原始 KB 数: 2555855

Summary

本文帮助您解决在 Microsoft SQL Server 中通过链接服务器运行 T-SQL 查询或使用OPENROWSETOPENDATASOURCE进行临时查询时出现的 OLE DB 提供程序错误。 这些错误通常表示未安装 OLE DB 提供程序、未注册或与SQL Server体系结构不匹配。

症状

运行使用链接服务器或即席查询的 T-SQL 查询(通过使用 OPENROWSETOPENDATASOURCE),可能会收到以下错误消息之一:

尚未注册 OLE DB 提供程序“<ProviderName>”。 (Microsoft SQL Server,错误:7403)

无法为链接服务器“<LinkedServerName>”创建 OLE DB 提供程序“<ProviderName>”的实例。 (Microsoft SQL Server错误: 7302)

这些错误也可能在您操作后出现:

  • 将SQL Server从一台计算机迁移到另一台计算机。
  • 从不同的服务器还原master数据库。

原因

由于以下原因之一,SQL Server无法初始化指定的 OLE DB 访问接口:

  • 服务器上未安装 OLE DB 提供程序或驱动程序。
  • 安装的提供程序与 SQL Server 处理器架构(x86 与 x64)不匹配。
  • 已安装 OLE DB 提供程序,但未正确注册。

注释

使用 sp_addlinkedserver 创建链接服务器时,SQL Server不会立即报告与提供程序可用性相关的错误。 仅当运行使用链接服务器的查询时,才会显示这些错误。

解决方案

若要解决此问题,请按照给定顺序的每个部分中的步骤进行操作。

验证已安装的 OLE DB 提供程序或驱动程序

使用以下方法之一检查SQL Server实例上注册了哪些 OLE DB 提供程序或驱动程序:

  • SQL Server Management Studio (SSMS), 展开 Server Objects>Linked Servers>Providers 以查看已注册的 OLE DB 提供程序或驱动程序列表。

  • 运行以下查询以查看所有定义的链接服务器及其关联的提供程序或驱动程序:

    SELECT * FROM sys.servers;
    

    有关返回的列的详细信息,请参阅 sys.servers (Transact-SQL)

验证提供程序或驱动程序安装

验证是否已安装正确的 OLE DB 提供程序并匹配SQL Server的体系结构:

  1. 检查链接服务器所需的提供程序是否存在于 提供程序列表中,验证已安装的 OLE DB 提供程序或驱动程序

  2. 如果缺少提供程序,请安装它:

  3. 确保提供程序版本与SQL Server体系结构匹配。 例如,为 64 位 SQL Server 实例安装 64 位提供程序。

有关验证提供程序的更多方法,请参阅 OLE DB 驱动程序安装检查

注册 OLE DB 提供程序

如果提供程序 DLL 存在于磁盘上但未注册,请使用 验证提供程序或驱动程序安装中的步骤重新安装提供程序或驱动程序。 重新安装可确保 DLL 正确注册。

验证提供程序连接性

使用通用数据链接文件(UDL)验证 OLE DB 接口是否可以连接到目标数据源:

  1. 创建新的 .udl 测试文件。
  2. 双击 .udl 文件以打开 “数据链接属性 ”对话框。
  3. 选择“ 提供程序 ”选项卡,然后从列表中选择 OLE DB 提供程序。
  4. “连接 ”选项卡上,输入服务器名称和身份验证详细信息。
  5. 选择 “测试连接 ”以验证连接。

有关详细步骤,请参阅使用 UDL 文件测试到SQL Server的 OLE DB 连接

第三方信息免责声明

本文讨论的第三方产品由独立于Microsoft的公司制造。 Microsoft对这些产品的性能或可靠性不作任何默示或其他保证。