Альтернатива SQL BULK INSERT

Мне нужно импортировать файл формы данных .csv в таблицу базы данных (MS SQL Server 2005). SQL BULK INSERT кажется хорошим вариантом, но проблема в том, что мой сервер БД находится не в том же поле, что и мой веб-сервер. Этот вопрос описывает ту же проблему, однако я не иметь какой-либо контроль над моим сервером БД и не может делиться на нем папками.

Мне нужен способ программно импортировать мой .csv (C#), есть идеи?

EDIT: это часть веб-сайта, где пользователь может заполнить таблицу содержимым .csv, и это будет происходить еженедельно, если не чаще.


person roman m    schedule 23.02.2009    source источник


Ответы (4)


У вас есть несколько вариантов:

  1. SSIS
  2. DTS
  3. пользовательское приложение

Любой из этих подходов должен выполнять свою работу. Если это просто набросок, может быть лучше написать одноразовое приложение на вашем любимом языке только для того, чтобы получить данные. Если вам нужно долгосрочное решение, вы можете изучить SSIS или DTS, поскольку они созданы для ситуация такого типа.

person Andrew Hare    schedule 23.02.2009

Попробуйте Rhino-ETL, это механизм ETL с открытым исходным кодом, написанный на C#, который может даже использовать BOO для простых сценариев ETL, поэтому вам не нужно его постоянно компилировать.

Код можно найти здесь: https://github.com/hibernating-rhinos/rhino-etl

Парень, который это написал: http://www.ayende.com/blog

В списках групп есть некоторые обсуждения по этому поводу, я фактически добавил массовую вставку для бу-скриптов некоторое время назад. http://groups.google.com/group/rhino-tools-dev http://groups.google.com/group/rhino-tools-dev/browse_thread/thread/2ecc765c1872df19/d640cd259ed493f1

Если вы загружаете код, есть несколько примеров, также проверьте список групп Google, если вам нужна дополнительная помощь.

person abombss    schedule 23.02.2009

в итоге я использовал CSV Reader. Я видел ссылку на него в одном из ответов @Jon Skeet, не могу найти его снова, чтобы поставить ссылку на него.

person roman m    schedule 24.02.2009

Насколько велики ваши наборы данных? Если они не очень велики, вы можете обойтись параметризованными операторами вставки. Вы можете сначала загрузить промежуточную таблицу из соображений спокойствия или производительности.

person jason saldo    schedule 23.02.2009
comment
наборы данных доходят до 10 тыс. записей - person roman m; 24.02.2009