Доступ к Excel файлам напрямую из MSSQL

Скрипты, запросы.

Доступ к Excel файлам напрямую из MSSQL

Сообщение invisib1e » 13 авг 2012, 11:36

Шаг - 1
Для работы скрипта на сервере должен быть установлен AccessDatabaseEngine.

Внимание! Для корректной работы, необходимо верно подобрать архитектуру файла x86 или x64, для этого нужно выяснить какой архитектуры SQL-Server стоит у Вас.
При этом, если архитектура установленного SQL-Server - x64 и на сервере стоит Office - x86, то установить AccessDatabaseEngine не получится, для установки понадобится удалить Office, и поставить его уже после установки AccessDatabaseEngine. (При установке AccessDatabaseEngine - x86 на сервер SQL-Server - x64, провайдер в SQL-Server не добавляется!)

Шаг - 2
Проверяем появился-ли провайдер "Microsoft.ACE.OLEDB.12.0":
Код: Выделить всё
exec xp_enum_oledb_providers

Шаг - 3
Для включения нерегламентированных распределенных запросов вводим:
Код: Выделить всё
sp_configure 'Ad Hoc Distributed Queries', 1
RECONFIGURE

Шаг - 4
В самом скрипте от нас требуется указать путь к Excel файлу и наименование листа:
Код: Выделить всё
select * from opendatasource('Microsoft.Ace.OLEDB.12.0','Data Source=С:\test.xls;Extended Properties=EXCEL 12.0')...[Лист1$]

Также можно и добавлять строки в Excel:
Код: Выделить всё
insert into opendatasource('Microsoft.ace.OLEDB.12.0','Data Source=C:\test.xls;Extended Properties=EXCEL 12.0')...[Лист1$] (field1, field2) values ('test','test')


В Excel файле обязательно должны быть указаны столбцы!.
invisib1e
The Admin
 
Сообщения: 55
Зарегистрирован: 16 мар 2010, 22:28
Откуда: Russia, Moscow
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.

Вернуться в Transact-SQL

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron