Для запуска OPENROWSET в 64-битной версии Windows.
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- Не используйте 'select * from sheet1 $' в функции OPENROWSET. Попробуйте этот код.
select * from OPENROWSET('MICROSOFT.ACE.OLEDB.12.0', 'Excel 12.0;HDR=YES;DATABASE=D:\test.xlsx', sheet1$)
ЕслиТем не менее, у вас есть (32-разрядная) ошибка, попробуйте перезапустить службу SQL и проверьте C: \ Windows \ Temp и посмотрите, есть ли у вас доступ к этому каталогу или нет.