如何修复“尚未注册 OLE DB 提供程序“MSOLAP”?

Jon*_*gel 4 sql-server sql-server-2008-r2 linked-server

这是我用来将链接服务器注册到 SSAS 的代码:

USE [master];
GO

EXEC master.dbo.sp_addlinkedserver
    @server = N'ServerAlias',
    @srvproduct = N'',
    @provider= N'MSOLAP',
    @datasrc= N'ActualServerName',
    @catalog = N'DatabaseName';
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 运行 MDX 查询时OPENQUERY,或者如果我在运行上述代码后在 Management Studio 中使用测试连接命令,我会收到错误消息:

消息 7403,级别 16,状态 1,第 1 行
OLE DB 提供程序“MSOLAP”尚未注册。

这很奇怪,因为此提供程序是作为 SQL Server 的一部分安装的。

  • 它也在同一台机器上的所有其他实例上失败——2008 R2 RTM 和 2008 R2 SP1 的总共 5 个实例。我不太记得了,但问题框中的 1 或 2 个实例可能在某个时候从 2008 升级到了 2008 R2。
  • 它在使用 2008 R2 的其他几个盒子上取得了成功,其中一个盒子有大约 12 个 2005、2008 R2 和 2012 的实例。我尝试了 32 位和 64 位都成功了。

我查看了这篇 Microsoft KB 文章,它描述了确切的问题;但是,没有适用的决议。我在互联网上发现的此错误的每个其他实例都是由于有人错误地定义了链接服务器,这也不适用。

这是一个开发服务器(谢天谢地),所以几乎所有选项都在桌面上。维修会解决这个问题吗?感觉注册表中有些问题。

(我首先要求指导,因为由于缺乏权限,我无法自己进行任何维护。)

mrd*_*nny 7

除非您在服务器上安装 SSAS,否则 SQL Server Analysis Services 驱动程序实际上并不作为正常 SQL Server 安装的一部分进行安装。

您可以从SQL Server 功能包下载 MSOLAP 驱动程序并安装它。然后您可以创建链接服务器。如果您有 64 位 SQL Server,请不要忘记安装 64 位安装;如果您有 32 位 SQL Server,请不要忘记安装 32 位。