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

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

2 голосов
/ 24 февраля 2009

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

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

РЕДАКТИРОВАТЬ: это часть веб-сайта, где пользователь может заполнить таблицу содержимым .csv, и это будет происходить еженедельно, если не чаще

Ответы [ 4 ]

5 голосов
/ 24 февраля 2009

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

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

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

2 голосов
/ 24 февраля 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, если вам нужна дополнительная помощь.

1 голос
/ 24 февраля 2009

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

0 голосов
/ 24 февраля 2009

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

...