2014-01-15 6 views
0

фона:Импорт CSV-файл с веб-интерфейсе Access в SQL Server

В моей компании мы имеем много CSV файлов, которые должны быть импортированы в SQL Server. Файлы CSV содержат многомерные рыночные симуляции, которые хранятся в форме EAV (2 столбца и 10^6 до 10^10 строк). Их размер варьируется, но нет ничего необычного в том, что он больше 500 МБ.

До сих пор файлы тезисов были импортированы администратором базы данных через SSMS в SQL Server.

Каждый импорт должен иметь идентификатор импорта и временную метку. Это требует много времени и ошибок для администратора базы данных, который делает это вручную.

Таким образом, создается передняя часть доступа, позволяющая каждому пользователю легко импортировать CSV-файл на сервер после выбора с помощью Listbox. Теперь я столкнулся с проблемой импорта CSV-файла через интерфейс Access.

Проблема:

Вот возможные варианты, которые я рассмотрел, но которые не представляется возможным:

  • Проходят некоторые команды T-SQL в SQL Server, как указано здесь (не разрешено доступом)
  • Импорт CSV-строк по линии с помощью цикла VBA (занимает слишком много времени от 10^6 до 10^10 строк)
  • Импортируйте CSV-файл в базу данных Access и затем экспортируйте таблицу в SQL Serv er (ограничение доступа 2Gb доступа делает невозможным)

Есть ли другой вариант для выполнения этой задачи с использованием Access?

+1

На странице, на которую вы ссылаетесь, есть код, который должен быть выполнен как TSQL для базы данных SQL Server. Я не думаю, что вы можете использовать этот код, используя Access и ADODB. Я бы предположил, что правильным способом было бы импортировать CSV в Access; манипулировать/преобразовывать данные в Access; заполнять данные на SQL Server в промежуточной таблице; fire sproc в SQL Server для приема данных. Более подробная информация будет необходима, чтобы помочь вам в решении вашей проблемы. –

+0

Спасибо, я добавил несколько подробностей. Основная проблема заключается в том, что файлы слишком велики для импорта в Access, некоторые из них превышают ограничение доступа 2Gb. – motsdujour

ответ

2

Одно из возможных решений заключается в следующем. Внешний интерфейс вашего доступа имеет форму, которая принимает три значения: имя файла/местоположение; ImportationID; Отметка. После ввода пользователем этих данных кнопка «Go» или «Submit» запускает хранимую процедуру в базе данных SQL Server, которая принимает эти 3 переменные.

Хранимая процедура выдаст BulkInsert (или другие команды, с которыми вы связаны), чтобы получить CSV в базе данных, а затем обработать данные и преобразовать их в соответствии с вашими бизнес-правилами (правильно установите ImportationID и Timestamp для пример).

Это то, что разработчик базы данных (или, возможно, администратор базы данных) должен иметь возможность настроить, и любые ограничения проверки или безопасности могут быть применены в базе данных.

+0

Это отличная идея! Я настрою это с помощью администратора db. – motsdujour

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