Проблемы с созданием запросов в Excel до SQL

У меня следующий вопрос, может быть сгенерирован запрос, который называется данными, содержащимися в листе Excel, например:

select * from TablaExcel

где TableExcel - это то, что содержит информацию Excel, почему Я хочу сделать это, так как у меня есть список данных, который превышает 200 данных, и у меня есть ограничения, я не могу создать таблицу, представления и процедуры, поэтому я хотел бы знать, есть ли способ извлечь данные из Excel в SQL через консультацию.

2
задан 27.11.2019, 01:32
1 ответ

До dГіnde sГ©, есть два способа читать расписание Excel.

1. Посредством одного linked server:

BГЎsicamente [один 116] - один conexiГіn с данных до внешнего шрифта, обычно другой сервер sqlserver, но tambiГ©n в другие механизмы (mysql, oracle, и т.д.) или источники данных oledb, которые позволяют ее conexiГіn с файлами fГ-sicos, с расписаний Excel, основания Access или даже, старые и дорогие файлы Dbase между другими. Чтобы создавать один linked server ты это можешь делать с Management Studio в ней opciГіn Server Objects -> Linked Server или посредством sp_addlinkedserver. Фундаментальное configuraciГіn состоит в том, чтобы выбирать provider Oledb и конфигурировать потом path в файл fГ-sico.

Доступ потом сходный с доступом любой другой таблицы, только, что есть добавлять информацию mГЎs к схеме, которая является именем linked server, например:

SELECT * FROM linkedserver_name…Sheet1$ AS xl

Sheet1 - имя лацкана Excel, которое нужно читать. У этой opciГіn есть Ваши преимущества в повторном процессе и dГіnde расписание всегда было тем же самым.

2. Посредством openrowset().

- альтернатива немного mГЎs просто и mГЎs элегантно, в отличие от linked server нам позволяет соглашаться в mГєltiples файлы segГєn требование, но потребуй повторно конфигурировать сервер, так как по умолчанию не возможно выполнять распространенные консультации. Если у тебя есть подходящие разрешения, ты можешь пробовать конфигурировать во-первых это посредством:

EXEC sp_configure 'Ad hoc dis'

вероятный, что это ты dГ© ошибка, что значит, что сервер не estГЎ конфигурировавший, чтобы показывать их тебе parГЎmetros передовые. Чтобы это решать:

EXEC sp_configure 'Show Advanced', 1
RECONFIGURE

И потом:

EXEC sp_configure 'Ad hoc dis', 1
RECONFIGURE

, однажды Конфигурировавшие это, достаточно просто строить консультацию в любой файл Excel:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\Tmp\MiPlanilla.xlsx;', 'SELECT * FROM [Sheet1$]')

Замечаний:

  • provider (цепь 'Microsoft.ACE.OLEDB.12.0') может меняться согласно тебе instalaciГіn.
  • Сервер должен размещать драйверов Oledb по возможности их mГЎs обновленные
  • , Когда ты будешь должен конфигурировать файл, ты должен понимать, что тот же самый локальный в сервер и не в твою команду, когда ты стараешься читать c:\tmp\planilla.xlsx, папка c.\Tmp не папка твоей команды а папка сервера.

InformaciГіn добавочный ссылки:

1
ответ дан 01.12.2019, 10:46