SQL Server: Não é possível inicializar o objeto de fonte de dados do provedor OLE DB “Microsoft.ACE.OLEDB.12.0” para o servidor vinculado “(null)”
Eu estou tentando executar a seguinte consulta:
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=C:\Somefile.xlsx',
'SELECT * FROM [Sheet$]')
Mas eu recebo este erro:
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".
Eu tentei o seguinte:
sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
E:
USE [master]
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
GO
Quando vou para 'Objetos de servidor' -> 'Servidores vinculados' -> 'Provedores', o arquivo Microsoft.ACE.OLEDB.12.0 é listado.
O Acess Database Engine x64 está instalado, todos os produtos do Office são de 64 bits e meu SQL Server também é de 64 bits.
Se isso importa, todos os usuários têm acesso à pasta Temp na pasta Usuários.
(Estas são todas as sugestões que encontrei em respostas semelhantes a esta pergunta)
Editar: usando o SQL Server 2014.