Я попытался использовать предыдущий ответ для файла .xlsx
(версия 14.0.6112.2500, 64-разрядный файл Microsoft Excel)
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\xls_to_sql\xltest.xlsx', [Sheet1$])
Затем я сохранил электронную таблицу как .xls
(97-2003версия) и попробовал еще раз.
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\xls_to_sql\xltest.xls', [Sheet1$])
Bot раз я получил то же сообщение об ошибке:
Msg 7308, Level 16, State 1, Line 1
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.
Информация SQL SERVER:
Microsoft SQL Server ManagementStudio 10.50.1617.0 Инструменты клиента служб аналитики Microsoft 10.50.1617.0 Компоненты доступа к данным Microsoft (MDAC) 6.1.7601.17514 Microsoft MSXML 2.6 3.0 6.0 Microsoft Internet Explorer 9.0.8112.16421 Microsoft .NET Framework 2.0.50727.5448 Операционная система 6.1.7601
У меня нет Microsoft.Jet.OLEDB.4.0 или, по крайней мере, я не знаю, как его получить.Я также не знаю, как запустить все в 32-битном режиме, если это является причиной проблемы.Я был бы признателен за помощь в работе в 32-разрядном режиме, а также за загрузку и установку Microsoft.Jet.OLEDB.4.0, если по какой-то причине он у меня не установлен.
Я попробовал метод связанного сервера, который, как я видел, опубликован дляSQL Server 2005, но нет опции Microsoft.Jet.OLEDB.4.0, упомянутой в руководстве.См http://support.microsoft.com/kb/321686.