2015-01-09 5 views
0

У меня есть около 40+ файлов excel, которые я хотел бы импортировать в SQL Server 2012. Мастер импорта - отличный инструмент, но он позволяет мне импортировать только один файл за раз.Импорт нескольких файлов Excel в SQL Server

Я хочу, чтобы избежать использования SSIS, потому что импорт должен быть относительно простым - в основном это просто прямая копия-паста с первой строкой в ​​файлах Excel, являющимися именами столбцов, и именем файлов Excel = Имя таблицы.

Есть ли какой-либо простой способ достичь этого?

Отредактировано: Поскольку столбцы будут меняться довольно часто, я хотел бы избежать создания таблиц вручную. Мастер велик, потому что он автоматически создаст таблицу для меня.

+0

Вы можете сделать это с помощью OpenRowset – HaveNoDisplayName

+0

Вы можете уточнить немного больше? Это инструмент, функция или программное обеспечение? –

+0

По OpenRowSet вы создадите новую таблицу во время импорта. – HaveNoDisplayName

ответ

1

Вы можете сделать это с помощью OpenRowSet. Функция OPENROWSET может ссылаться в предложении FROM запроса, как на имя таблицы.

Чтение Excel с помощью следующей ЗЕЬЕСТ вместе с функцией OPENROWSET

SELECT * 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'Excel 8.0;Database=C:\Source\Addresses.xls;IMEX=1', 
       'SELECT * FROM [Sheet1$]') 

Чтобы импортировать это в таблицу SQL Server без использования DTS, так как вы можете прочитать данные с помощью ЗЕЬЕСТ, вы можете просто добавьте предложение INTO, чтобы вставить записи в новую таблицу SQL Server.

SELECT * 
INTO [dbo].[Addresses_NewTable] 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'Excel 8.0;Database=C:\Source\Addresses.xls;IMEX=1', 
       'SELECT * FROM [Sheet1$]') 

Ссылка статья: - http://www.sql-server-helper.com/tips/read-import-excel-file-p03.aspx

+0

Я получаю сообщение об ошибке: Не удается создать экземпляр Поставщик OLE DB «Microsoft.Jet.OLEDB.4.0» для связанного сервера «(null)». –

+0

Чтобы создать связанный сервер, который обращается к электронной таблице Excel, вам необходимо выполнить sp_addlinkedserver. следуйте http://technet.microsoft.com/en-us/library/ms175866(v=sql.105).aspx – HaveNoDisplayName

+0

Msg 15028, уровень 16, состояние 1, процедура sp_addlinkedserver, строка 82 Сервер EXCEL уже существует , Msg 7302, уровень 16, состояние 1, строка 2 Невозможно создать экземпляр поставщика OLE DB «Microsoft.Jet.OLEDB.4.0» для связанного сервера «(null)». –

0

Это может быть больше исследований, чем вы хотите, чтобы положить в вашу проблему, но вы также можете посмотреть в использовании МБЗМА для сценария из утомительных и многочисленных аналогичных пакетов.

http://www.sqlservercentral.com/stairway/100550/ http://www.mssqltips.com/sqlservertip/3094/introduction-to-business-intelligence-markup-language-biml-for-ssis/

Смежные вопросы