OPENROWSET с файлом Excel

Я хочу выполнить простое утверждение:

SELECT * FROM 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;Database=C:\Temp\;','SELECT * FROM [test.csv]')

И вдруг я получаю это сообщение сегодня утром:

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.

Это работало до сегодняшнего утра!

Вот мои спецификации сервера: Windows 2008 R2 64-битная SQL Server 2008 64-битная

Я установил AccessDatabaseEngine_x64.exe.

Sql Server работает под учетной записью LocalService. Я установил для каждого пользователя разрешение FullControl для «C: \ Temp», а также «C: \ Windows \ ServiceProfiles \ LocalService \ AppData \ Local».

Я что-то пропустил? Я действительно смущен...

Отредактировано: я также выполнил эти заявления:

sp_configure ‘show advanced options’, 1;
 GO
 RECONFIGURE;
 GO
 sp_configure ‘Ad Hoc Distributed Queries’, 1;
 GO
 RECONFIGURE;
 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

Я также проверилACE.OLEDB.12.0 с учетной записью администратора:

SELECT * FROM  
OPENROWSET('MICROSOFT.ACE.OLEDB.12.0','Text;Database=C:\Temp\;','SELECT * FROM [test.csv]')

Есть еще одна ошибка:

OLE DB provider "MICROSOFT.ACE.OLEDB.12.0" for linked server "(null)" returned message "Unspecified error".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MICROSOFT.ACE.OLEDB.12.0" for linked server "(null)".

Наконец я нашел его: я запустил ProcMon и увидел, что Sql Server хочет получить доступ к F: \ Windows Temp \, а папка не существует! Я создал папку, и проблема решена. Но у меня никогда не было такой папки !!!

Ответы на вопрос(1)

Ваш ответ на вопрос