Aqui está o código que estou usando para registrar um servidor vinculado ao SSAS:
USE [master];
GO
EXEC master.dbo.sp_addlinkedserver
@server = N'ServerAlias',
@srvproduct = N'',
@provider= N'MSOLAP',
@datasrc= N'ActualServerName',
@catalog = N'DatabaseName';
Quando tento executar uma consulta MDX usando OPENQUERY
, ou se uso o comando Test Connection no Management Studio após executar o código acima, recebo o erro:
Msg 7403, nível 16, estado 1, linha 1
O provedor OLE DB "MSOLAP" não foi registrado.
Isso é muito estranho, pois esse provedor é instalado como parte do SQL Server.
- Ele também falha em todas as outras instâncias na mesma caixa -- 5 instâncias totais de 2008 R2 RTM e 2008 R2 SP1. Não me lembro exatamente, mas 1 ou 2 das instâncias na caixa de problemas podem ter sido atualizadas de 2008 para 2008 R2 em algum momento.
- Ele teve sucesso em algumas outras caixas usando 2008 R2, incluindo uma caixa que tem cerca de uma dúzia de instâncias totais de 2005, 2008 R2 e 2012. Tentei 32 bits e 64 bits com sucesso.
Eu olhei para este artigo da Microsoft KB que descreve o problema exato; no entanto, não há uma resolução aplicável. Todas as outras instâncias desse erro que encontrei na Internet ocorreram devido a alguém definindo incorretamente o servidor vinculado, o que também não é aplicável.
Este é um servidor de desenvolvimento (felizmente), então praticamente todas as opções estão na mesa. Um reparo resolveria isso? Parece que algo está errado no registro.
(Estou pedindo orientação primeiro, pois não posso realizar nenhuma manutenção devido à falta de permissões.)
Os drivers do SQL Server Analysis Services não são realmente instalados como parte da instalação normal do SQL Server, a menos que você instale o SSAS no servidor.
Você pode baixar o driver MSOLAP do pacote de recursos do SQL Server e instalá-lo. Em seguida, você pode criar o servidor vinculado. Não se esqueça de instalar a instalação de 64 bits se tiver um SQL Server de 64 bits ou a de 32 bits se tiver um SQL Server de 32 bits.
Procure por msolap*.dll para encontrar seus provedores instalados e registrá-los usando
regsvr32
.Seguem-se exemplos (as localizações dos seus ficheiros podem variar):
E se você estiver usando um sistema operacional de 64 bits:
Verifique também se você está executando o prompt de comando como administrador