Задача: получить набор данных из Excel-файла в виде результата запроса SQL.
Все необходимые опции, заранее, были включены следующим скриптом:
sp_configure 'show advanced options', 1; RECONFIGURE; GO sp_configure 'Ad Hoc Distributed Queries', 1; 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
Далее, я пытаюсь сделать импорт данных из Excel-файла SQL-запросом:
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=c:\xlsfile\file.xlsx', 'SELECT * FROM [Sheet1$]')
но выходит ошибка:
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)".
Решение: Добавить полные права на папку:
c:\Users\MSSQLSERVER\AppData\Local\Temp\
для пользователя под которым осуществлен вход в Windows.