2013-07-01 2 views
2

я нахожу некоторые способы, чтобы импортировать данные из запроса SQL Server в Excel, как показано ниже, но ни один из них не кажется, работаютИмпорт данных в Excel из запроса SQL Server

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
     'Excel 8.0;Database=D:\testing.xls;', 
     'SELECT * FROM [SheetName$]') select * from tblName 

Ошибка:

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.

+0

Проверьте эти http://www.sqlservergeeks.com/forums/microsoft-data-platform/sql-server-bi/37/ms-jet-oledb-4-0-cannot-be-used-for-distributed -queries-because-the-provider-is-setup-to-run-in-single-threaded-apartment-mode и http://blog.sqlauthority.com/2010/11/03/sql-server-fix-error -ms-jet-oledb-4-0-не может быть использован для распределенных запросов, потому что-провайдер-используется-для-в-квартире-режиме/ –

ответ

0

Если у вас 32-разрядный Office, и вы не хотите его удалять, попробуйте установить последнюю версию AccessDatabaseEngine из Microsoft (64-разрядной). Для того, чтобы установить его без удаления 32-битной версии, перейдите в каталог загрузки в COMAND линии и написать

AccessDatabaseEngine.exe /passive 

Тогда в SSMS вы можете импортировать Excel с кодом:

FROM OPENROWSET 
('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\path\sheet.xlsx', [Sheet1$]) 
1

Как указано на ошибки сообщение, SQL-сервер не сможет перенести данные в Excel с помощью этого метода. Одно из возможных решений, которое не требует программирования: Откройте Excel, перейдите на вкладку «Данные», «Из других источников», «SQL Server». Откроется окно с запросом имени сервера, укажите имя сервера и имя экземпляра, разделенные обратным слэшем. Пример: localhost \ sqlexpress (если вы используете экспресс-версию SQL Server на вашем ПК, в противном случае сервер, на котором вы устанавливали SQL Server, вместе с именем экземпляра). Аутентификация, предоставляя идентификатор пользователя и пароль, как определено на SQL-сервере, или просто щелчок по проверке подлинности Windows. После этого у вас будет возможность выбрать имя таблицы. Затем данные будут перенесены в таблицу Excel, которую вы можете обновить, щелкнув правой кнопкой мыши по ней. Пожалуйста, укажите, хотите ли вы альтернативное решение, которое может потребовать программирования.

+1

Я хочу сделать это из код –

0

Вы должны взглянуть на решение Pinal Dave's. Кроме того, возможно, у вас есть машина x64, поэтому она не будет работать из-за недоступности драйвера. Выезд this answer.