Мне нужно создать процесс для импорта таблицы с несколькими вкладками Excel в SQL Server 2008R2. Каждая вкладка будет другой таблицей в базе данных. Это нужно будет делать еженедельно, а импорт должен быть автоматизирован. В идеале я хочу поместить электронную таблицу в папку [или у нее есть какой-то стажер) и выполнить sql-процедуру, которая просматривает эту папку, и добавляет данные в таблицы в этом db. Я также хотел бы иметь еще одну таблицу, которая отслеживает импорт и отметки даты. Я действительно не знаю, где даже начать здесь, поскольку я довольно огромный noob, когда дело доходит до tsql.Импорт Excel в SQL Server 2008
ответ
Если вы ограничены исключительно TSQL
, вышеупомянутые два ответа покажет вам некоторые идеи. Если у вас есть доступ к Data Tools
или Business Intelligence
, с SSIS
, вы можете автоматизировать его с предположением, что каждый лист в книге Excel соответствует каждому разу. С помощью SSIS
вы будете использовать задачу потока данных, и каждый лист будет импортирован в нужную таблицу. Когда вы будете готовы к файлу на следующей неделе, вы поместите его в папку и запустите пакет SSIS
.
Однако, если имена листов изменяются (например, недельные листы называются кошками, собаками, дождем, а на следующей неделе это Sulphur, Fire, Hell), то это может привести к поломке пакета. В противном случае, если меняются только данные на рабочем листе, это может быть полностью автоматизировано с помощью SSIS.
Пример статьи: https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server---10-steps-to-follow/
Существует хорошая статья от microsoft - http://support.microsoft.com/kb/321686 - которая описывает вовлеченные процессы.
Процесс просто
SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]
Где XLImport3
это таблица, которую нужно импортировать в и DataSource является лист первенствовать вы хотите импортировать данные.
Вам необходимо включить использование 'Ad Hoc Distributed Queries' с помощью sp_configure для того, чтобы использовать 'OpenDatasource' – illumi
Ниже приведен код для вставки данных из файла csv в заданную таблицу. Я не совсем то, что нужно для проекта, но если бы я был вами, я бы просто разделил каждую таблицу на другой файл, а затем просто запустил proc, который вставляет данные в каждую из таблиц.
BULK
INSERT TABLE_NAME
FROM 'c:\filename.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
insert into import_history ('filename', 'import_date') values ('your_file_name', getdate())
Кроме того, для таблицы, которая отслеживает импорт и временную метки их, вы можете просто вставить некоторые данные в эту таблицу после каждой массовой вставки, как показаны выше.
Кроме того, здесь ссылка на учебник по насыпной вставки из файла CSV, который может также помочь: http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/
Его очень просто. Щелкните правой кнопкой мыши базу данных в SQL Server (2008), выберите Tasks
и выберите Import Data
Теперь измените DataSource
на Microsoft Excel
. Выберите путь к файлу Excel, нажав кнопку Browse
и нажмите Next
.
Выбрал Sql Server instance
и выбрал базу данных, в которой Excel для импорта.
Выберите Copy data from one or more tables or views
и нажмите Next
.
Теперь выберите листы, которые будут импортированы в Sql Server
.
Нажмите Next
Теперь нажмите Finish
Теперь мастер импортирует данные из Excel
в Sql Server
и нажмите Close
.
Вот таблица
Смотрите, где OP говорит: «... должно быть автоматизировано ...» – kfm2000
- 1. Импорт файла excel в sql server 2008
- 2. Импорт данных Excel в SQL Server 2008
- 3. Импорт Excel 2010 на Sql Server 2008
- 4. Импорт .txt файл в SQL Server 2008
- 5. Импорт Excel в SQL Server
- 6. Импорт данных из MS Excel в SQL Server 2008 R2
- 7. Импорт данных из Excel в Sql Server 2008 # 2
- 8. Импорт данных из Excel в SQL Server 2008
- 9. Импорт данных Excel в SQL Server
- 10. SQL Server 2008: импорт данных из Excel 2003 файл
- 11. Импорт динамического Excel в SQL 2008 r2
- 12. Импорт SQL Server 2008 db в Azure
- 13. Импорт отдельных записей в SQL Server 2008
- 14. Импорт CSV-файлов в SQL Server 2008
- 15. Импорт файла MDF в SQL Server 2008?
- 16. Импорт CSV в SQL Server 2008
- 17. SQL Server 2008 - Импорт часть XML-файла
- 18. Импорт данных SQL Server 2008 SSIS
- 19. SQL Server 2008 Импорт/экспорт данных
- 20. Импорт данных из Excel в SQL Server
- 21. Импорт данных Excel в SQL Server
- 22. Импорт текста сценария SQL Server в Excel
- 23. Импорт Excel в SQL Server CE
- 24. Импорт таблицы Excel в SQL Server 2000
- 25. Импорт Excel 2010 в SQL Server
- 26. Импорт нескольких файлов Excel в SQL Server
- 27. Импорт данных из Excel в SQL Server
- 28. Массовый импорт файла Excel в SQL Server
- 29. Импорт из Excel в SQL Server C#
- 30. Импорт файла Excel в SQL Server 2012
Я прочитал статью и, похоже, довольно ightforward. Будет ли я создавать другую ветку потока данных для каждой вкладки \ таблицы? – d90
@NicholasJDininno С несколькими листами у меня бы была одна задача потока данных, и в рамках этой задачи потока данных есть несколько источников Excel с несколькими назначениями ADO.NET или OLE DB Connection. Если вы выберете, вы можете сделать несколько потоков данных; тебе решать. – Question3CPO