Eu tenho o sql server 2008 R2 64bit Developer's Edition instalado na minha máquina.
E Microsoft Office 2010 Professional 32 bits.
Eu tenho tentado importar alguns dados do Excel de uma planilha do Excel para um banco de dados do sql server. Eu usei a seguinte consulta para fazer isso:
Consulta
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\Files\BlueFile.xlsx;IMEX=1',
'SELECT * FROM [Sheet1$]')
Entendo que o sql server desativou esse recurso por padrão como medida de segurança, no entanto, executei as seguintes instruções para habilitá-lo.
Configuração
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO
Mensagem de erro
No entanto, toda vez que executo a instrução select para obter dados da planilha do Excel, recebo o seguinte erro.
Msg 7308, nível 16, estado 1, linha 1 O provedor OLE DB
'Microsoft.Jet.OLEDB.4.0' não pode ser usado para consultas distribuídas porque o provedor está configurado para ser executado no modo de apartamento single-thread.
Como Mark mencionou nos comentários, você está enfrentando uma incompatibilidade de nível de bits entre os conjuntos de drivers. Você precisará instalar uma instalação de 64 bits do Office (especificamente o Excel neste caso) ou instalar uma instalação de 32 bits do SQL Server e importar os dados para essa instância.