Для запуска OPENROWSET в 64-битной версии окон.
1- Установить AccessDatabaseEngine_x64.exe (требуется перезагрузка).
2- Если вы используете SQL Management Studio, запустите Management Studio как администратор. Если вы не запустили его как учетную запись администратора, вы получите эту ошибку (не удается инициализировать объект источника данных поставщика OLE DB «MICROSOFT.ACE.OLEDB.12.0» для связанного сервера «(null)».
3 -.. Выполните эту команду для настройки вашей базы данных
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE with override;
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE with override;
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
4- не использовать «выберите * из Лист1 $» в функции OPENROWSET Попробуйте этот код
select * from OPENROWSET('MICROSOFT.ACE.OLEDB.12.0', 'Excel 12.0;HDR=YES;DATABASE=D:\test.xlsx', sheet1$)
Если еще у вас есть (32 бит), попробуйте перезапустить службу SQL и проверьте свой C: \ Windows \ Temp и посмотрите, есть ли у вас доступ к этому d или нет.
После того, как я установил Microsoft Access Database Engine 2010 Redistributable, я изменил выше запрос, и он отлично работал для меня. Ниже приведен модифицированный запрос. SELECT * FROM OPENROWSET ('MICROSOFT.ACE.OLEDB.12.0', 'Excel 12.0; HDR = YES; DATABASE = E: \ 01112012.xls', sheet1 $) – Simhadri