Я пытаюсь экспортировать данные из Table
в Excel
через T-SQL
. После небольшого исследования я придумал этот
INSERT INTO OPENROWSET ('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=G:\Test.xls;',
'SELECT * FROM [Sheet1$]')
SELECT *
FROM dbo.products
Когда я выполняю вышеуказанный запрос, я получаю эту ошибку
Msg 7302, уровень 16, состояние 1, строка 7 Невозможно создать экземпляр OLE Поставщик базы данных "Microsoft.Jet.OLEDB.4.0" для связанного сервера "(null)".
Итак, перешел через интернет для решения, получил ссылку ниже
В приведенной выше ссылке они говорили, что нам нужно быть администратором для создания папки в папке С диска TEMP
, так как OPENROWSET
создает некоторые файлы или папку внутри папки TEMP
Я делаю это на своем домашнем ПК, и я администратор. Тем не менее я получаю ту же ошибку.
SQL SERVER подробнее
Microsoft SQL Server 2016 (RC1) - 13.0.1200.242 (X64) 10 марта 2016 г. 16:49:45 Авторское право (c) Оценка корпоративной корпорации Microsoft Edition (64-разрядная версия) на Windows 10 Pro 6.3 (Build 10586:)
Любые указатели на исправление проблемы будут высоко оценены
Обновление:. Я уже настроил Ad Hoc Distributed Queries
и
Выполнено следующие запросы
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0', N'AllowInProcess', 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0', N'DynamicParameters', 1
GO
теперь я получаю эту ошибку
Msg 7438, уровень 16, состояние 1, строка 7 32-разрядный поставщик OLE DB "Microsoft.Jet.OLEDB.4.0" не может быть загружен в процессе в 64-разрядном SQL Сервер.